like2d 2.6.0 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -42
- package/dist/core/graphics.d.ts +10 -0
- package/dist/core/graphics.d.ts.map +1 -1
- package/dist/core/graphics.js +18 -0
- package/dist/core/like.d.ts +5 -0
- package/dist/core/like.d.ts.map +1 -1
- package/dist/engine.d.ts +4 -7
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +46 -50
- package/dist/gamecontrollerdb.txt +2 -0
- package/dist/index.d.ts +13 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -20
- package/dist/scene.d.ts +10 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/scenes/startup.d.ts +18 -0
- package/dist/scenes/startup.d.ts.map +1 -0
- package/dist/scenes/startup.js +48 -0
- package/package.json +13 -17
- package/dist/adapters/callback/index.d.ts +0 -23
- package/dist/adapters/callback/index.d.ts.map +0 -1
- package/dist/adapters/callback/index.js +0 -30
- package/dist/adapters/scene/index.d.ts +0 -18
- package/dist/adapters/scene/index.d.ts.map +0 -1
- package/dist/adapters/scene/index.js +0 -57
- package/dist/adapters/scene/scene.d.ts +0 -19
- package/dist/adapters/scene/scene.d.ts.map +0 -1
- package/dist/adapters/scene/startup-scene.d.ts +0 -18
- package/dist/adapters/scene/startup-scene.d.ts.map +0 -1
- package/dist/adapters/scene/startup-scene.js +0 -61
- package/dist/core/gamepad-button-map.d.ts +0 -5
- package/dist/core/gamepad-button-map.d.ts.map +0 -1
- package/dist/core/gamepad-button-map.js +0 -56
- package/dist/core/gamepad-db.d.ts +0 -49
- package/dist/core/gamepad-db.d.ts.map +0 -1
- package/dist/core/gamepad-db.js +0 -192
- package/dist/core/player-movement.d.ts +0 -16
- package/dist/core/player-movement.d.ts.map +0 -1
- package/dist/core/player-movement.js +0 -20
- /package/dist/{adapters/scene/scene.js → scene.js} +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Vec2 } from '../core/vector2';
|
|
2
|
+
const LOGO = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+Cjxzdmcgd2lkdGg9IjMwMG1tIiBoZWlnaHQ9IjEwNW1tIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzMDAgMTA1IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPHJlY3QgeD0iMTAiIHk9IjExLjIzIiB3aWR0aD0iMjgwIiBoZWlnaHQ9IjgzLjU0NCIgZmlsbD0iI2U0ODA4MCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgPHJlY3QgeD0iOTcuNDg0IiB5PSIxMS4yMyIgd2lkdGg9IjUyLjUxNiIgaGVpZ2h0PSI0Ni4yMzciLz4KICA8cmVjdCB4PSIxNTAiIHk9IjExLjIzIiB3aWR0aD0iMzUuMDExIiBoZWlnaHQ9IjQ2LjIzNyIvPgogIDxyZWN0IHg9IjE4NS4wMSIgeT0iMTEuMjMiIHdpZHRoPSI1Mi41MTYiIGhlaWdodD0iNDYuMjM3Ii8+CiAgPHJlY3QgeD0iMjM3LjUzIiB5PSIxMS4yMyIgd2lkdGg9IjUyLjUxNiIgaGVpZ2h0PSI0Ni4yMzciLz4KIDwvZz4KIDxnPgogIDxyZWN0IHg9IjEzMi40OSIgeT0iMTEuMjMiIHdpZHRoPSIxNy41MDUiIGhlaWdodD0iMjcuNDYxIi8+CiAgPHJlY3QgeD0iMTUwIiB5PSIyOS4zMDIiIHdpZHRoPSI4Ljc1MjciIGhlaWdodD0iMTguNzc2Ii8+CiAgPHJlY3QgeD0iMTc2LjI2IiB5PSIyOS4zMDIiIHdpZHRoPSI4Ljc1MjciIGhlaWdodD0iMTguNzc2Ii8+CiA8L2c+CiA8cmVjdCB4PSIxNTAiIHk9IjExLjIzIiB3aWR0aD0iMTcuNTA1IiBoZWlnaHQ9IjguNjg0NSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiA8cmVjdCB4PSIxNjcuNTEiIHk9IjExLjIzIiB3aWR0aD0iMTcuNTA1IiBoZWlnaHQ9IjguNjg0NSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiA8Zz4KICA8cGF0aCBkPSJtMjM3LjUzIDM4LjY5MS0xNy41MDUtOS4zODgyIDE3LjUwNS0xOC4wNzN6Ii8+CiAgPHJlY3QgeD0iMjAyLjg4IiB5PSI0OC4wNzkiIHdpZHRoPSIxNi43NzIiIGhlaWdodD0iOS4zODgyIi8+CiAgPHJlY3QgeD0iMjcyLjU0IiB5PSIyMC4yNjYiIHdpZHRoPSIxNi43NzIiIGhlaWdodD0iOS4zODgyIi8+CiAgPHJlY3QgeD0iMjcyLjU0IiB5PSIzOC42OTEiIHdpZHRoPSIxNi43NzIiIGhlaWdodD0iOS4zODgyIi8+CiAgPHBhdGggZD0ibTIwMi41MiAyOS4zMDIgMC4zNjY4NS0xOC4wNzNoMTcuMTM5eiIvPgogPC9nPgogPHBhdGggZD0ibTY0LjA3OCAxLjAwNDItMzMuMzc1IDMzLjM3NS0wLjAxNzQzIDAuMDE3NGEyMy42MTIgMjMuNjEyIDAgMCAwIDAgMzMuMzkyIDIzLjYxMiAyMy42MTIgMCAwIDAgMzAuMDEyIDIuODAyMiAyMy42MTIgMjMuNjEyIDAgMCAxIDdlLTMgMC41NzAzNCAyMy42MTIgMjMuNjEyIDAgMCAxLTIzLjYxMiAyMy42MTJoNTMuOTdhMjMuNjEyIDIzLjYxMiAwIDAgMS0yMy42MTEtMjMuNjEyIDIzLjYxMiAyMy42MTIgMCAwIDEgN2UtMyAtMC41NzAzNCAyMy42MTIgMjMuNjEyIDAgMCAwIDMwLjAxMi0yLjgwMjkgMjMuNjEyIDIzLjYxMiAwIDAgMC02Ljg4ZS00IC0zMy4zOTJ6IiBmaWxsPSIjODBjM2U0IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KIDxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIuNSI+CiAgPGNpcmNsZSB0cmFuc2Zvcm09InJvdGF0ZSgxMzUpIiBjeD0iLTIwLjk4OCIgY3k9Ii05My4yNDMiIHI9IjIzLjYxMiIvPgogIDxjaXJjbGUgdHJhbnNmb3JtPSJyb3RhdGUoMTM1KSIgY3g9IjIuNjIzOCIgY3k9Ii02OS42MzIiIHI9IjIzLjYxMiIvPgogIDxjaXJjbGUgY3g9IjkxLjA2MiIgY3k9IjcxLjE2MSIgcj0iMjMuNjEyIi8+CiAgPGNpcmNsZSBjeD0iMzcuMDkzIiBjeT0iNzEuMTYxIiByPSIyMy42MTIiLz4KIDwvZz4KPC9zdmc+Cg==';
|
|
3
|
+
/**
|
|
4
|
+
* A simple startup scene that waits for a mouse click before advancing.
|
|
5
|
+
*
|
|
6
|
+
* This exists to work around browser autoplay restrictions - browsers require
|
|
7
|
+
* user interaction (like a click) before allowing audio playback. Show this
|
|
8
|
+
* scene first, then transition to your game scene on click.
|
|
9
|
+
*/
|
|
10
|
+
export class StartupScene {
|
|
11
|
+
constructor(next, onDraw) {
|
|
12
|
+
Object.defineProperty(this, "next", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
writable: true,
|
|
16
|
+
value: next
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(this, "onDraw", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: onDraw
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(this, "logo", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true,
|
|
27
|
+
writable: true,
|
|
28
|
+
value: void 0
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
load(like) {
|
|
32
|
+
this.logo = like.gfx.newImage(LOGO);
|
|
33
|
+
}
|
|
34
|
+
draw(like) {
|
|
35
|
+
if (this.onDraw) {
|
|
36
|
+
this.onDraw(like);
|
|
37
|
+
}
|
|
38
|
+
else if (this.logo.isReady()) {
|
|
39
|
+
like.gfx.clear([0.05, 0.05, 0.08, 1]);
|
|
40
|
+
const winSize = like.gfx.getCanvasSize();
|
|
41
|
+
const scale = (winSize[0] * 0.5) / this.logo.size[0];
|
|
42
|
+
like.gfx.draw(this.logo, Vec2.div(winSize, 2), { scale, origin: Vec2.div(this.logo.size, 2) });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
mousepressed(like) {
|
|
46
|
+
like.setScene(this.next);
|
|
47
|
+
}
|
|
48
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "like2d",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.2",
|
|
4
4
|
"description": "A web-native game framework inspired by Love2D",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -10,14 +10,6 @@
|
|
|
10
10
|
".": {
|
|
11
11
|
"import": "./dist/index.js",
|
|
12
12
|
"types": "./dist/index.d.ts"
|
|
13
|
-
},
|
|
14
|
-
"./callback": {
|
|
15
|
-
"import": "./dist/adapters/callback/index.js",
|
|
16
|
-
"types": "./dist/adapters/callback/index.d.ts"
|
|
17
|
-
},
|
|
18
|
-
"./scene": {
|
|
19
|
-
"import": "./dist/adapters/scene/index.js",
|
|
20
|
-
"types": "./dist/adapters/scene/index.d.ts"
|
|
21
13
|
}
|
|
22
14
|
},
|
|
23
15
|
"files": [
|
|
@@ -26,6 +18,13 @@
|
|
|
26
18
|
"README.md",
|
|
27
19
|
"LICENSE"
|
|
28
20
|
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc && cp src/gamecontrollerdb.txt dist/",
|
|
23
|
+
"typecheck": "tsc --noEmit",
|
|
24
|
+
"lint": "echo 'No linting configured'",
|
|
25
|
+
"clean": "rm -rf dist",
|
|
26
|
+
"test": "vitest run"
|
|
27
|
+
},
|
|
29
28
|
"keywords": [
|
|
30
29
|
"game",
|
|
31
30
|
"framework",
|
|
@@ -37,14 +36,11 @@
|
|
|
37
36
|
],
|
|
38
37
|
"author": "",
|
|
39
38
|
"license": "MIT",
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/44100hertz/Like2D"
|
|
42
|
+
},
|
|
40
43
|
"devDependencies": {
|
|
41
44
|
"typescript": "^5.9.3"
|
|
42
|
-
},
|
|
43
|
-
"scripts": {
|
|
44
|
-
"build": "tsc && cp src/gamecontrollerdb.txt dist/",
|
|
45
|
-
"typecheck": "tsc --noEmit",
|
|
46
|
-
"lint": "echo 'No linting configured'",
|
|
47
|
-
"clean": "rm -rf dist",
|
|
48
|
-
"test": "vitest run"
|
|
49
45
|
}
|
|
50
|
-
}
|
|
46
|
+
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Like2DEvent } from '../../core/events';
|
|
2
|
-
import type { Like } from '../../core/like';
|
|
3
|
-
type LikeWithCallbacks = Like & {
|
|
4
|
-
load?: () => void;
|
|
5
|
-
update?: (dt: number) => void;
|
|
6
|
-
draw?: () => void;
|
|
7
|
-
resize?: (size: import('../../core/vector2').Vector2, pixelSize: import('../../core/vector2').Vector2, fullscreen: boolean) => void;
|
|
8
|
-
keypressed?: (scancode: string, keycode: string) => void;
|
|
9
|
-
keyreleased?: (scancode: string, keycode: string) => void;
|
|
10
|
-
mousepressed?: (x: number, y: number, button: number) => void;
|
|
11
|
-
mousereleased?: (x: number, y: number, button: number) => void;
|
|
12
|
-
gamepadpressed?: (gamepadIndex: number, buttonIndex: number, buttonName: string) => void;
|
|
13
|
-
gamepadreleased?: (gamepadIndex: number, buttonIndex: number, buttonName: string) => void;
|
|
14
|
-
actionpressed?: (action: string) => void;
|
|
15
|
-
actionreleased?: (action: string) => void;
|
|
16
|
-
handleEvent?: (event: Like2DEvent) => void;
|
|
17
|
-
start: () => Promise<void>;
|
|
18
|
-
dispose: () => void;
|
|
19
|
-
};
|
|
20
|
-
export declare function routeEvents(like: LikeWithCallbacks): (event: Like2DEvent) => void;
|
|
21
|
-
export declare function createLike(container: HTMLElement): LikeWithCallbacks;
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/callback/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAM5C,KAAK,iBAAiB,GAAG,IAAI,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACpI,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1F,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAGF,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAKjF;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,WAAW,GAAG,iBAAiB,CAqBpE"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Engine } from '../../engine';
|
|
2
|
-
// Routes events to callback properties on the like object
|
|
3
|
-
export function routeEvents(like) {
|
|
4
|
-
return (event) => {
|
|
5
|
-
const cb = like[event.type];
|
|
6
|
-
if (cb)
|
|
7
|
-
cb(...event.args);
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export function createLike(container) {
|
|
11
|
-
const engine = new Engine(container);
|
|
12
|
-
// Create the like object that combines engine.like with callback properties and methods
|
|
13
|
-
const like = {
|
|
14
|
-
...engine.like,
|
|
15
|
-
handleEvent: undefined,
|
|
16
|
-
start: async () => {
|
|
17
|
-
const handleEvent = (event) => {
|
|
18
|
-
like.handleEvent?.(event);
|
|
19
|
-
const cb = like[event.type];
|
|
20
|
-
if (cb)
|
|
21
|
-
cb(...event.args);
|
|
22
|
-
};
|
|
23
|
-
await engine.start(handleEvent);
|
|
24
|
-
},
|
|
25
|
-
dispose: () => {
|
|
26
|
-
engine.dispose();
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
return like;
|
|
30
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Engine } from '../../engine';
|
|
2
|
-
import type { Scene } from './scene';
|
|
3
|
-
import { StartupScene } from './startup-scene';
|
|
4
|
-
import type { Like2DEvent } from '../../core/events';
|
|
5
|
-
export { StartupScene };
|
|
6
|
-
export type { Scene };
|
|
7
|
-
export declare function createDefaultHandler(scene: Scene, like: Engine['like']): (event: Like2DEvent) => void;
|
|
8
|
-
export declare class SceneRunner {
|
|
9
|
-
private engine;
|
|
10
|
-
private scene;
|
|
11
|
-
constructor(container: HTMLElement);
|
|
12
|
-
get like(): import("../..").Like;
|
|
13
|
-
setScene(scene: Scene): void;
|
|
14
|
-
handleEvent: (event: Like2DEvent) => void;
|
|
15
|
-
start(scene: Scene): Promise<void>;
|
|
16
|
-
dispose(): void;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/scene/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,KAAK,EAAE,CAAC;AAGtB,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAMrG;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAsB;gBAEvB,SAAS,EAAE,WAAW;IAIlC,IAAI,IAAI,yBAEP;IAED,QAAQ,CAAC,KAAK,EAAE,KAAK;IAKrB,WAAW,GAAI,OAAO,WAAW,KAAG,IAAI,CAKtC;IAEI,KAAK,CAAC,KAAK,EAAE,KAAK;IAKxB,OAAO;CAIR"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Engine } from '../../engine';
|
|
2
|
-
import { StartupScene } from './startup-scene';
|
|
3
|
-
export { StartupScene };
|
|
4
|
-
// Default handler that routes events to scene methods
|
|
5
|
-
export function createDefaultHandler(scene, like) {
|
|
6
|
-
return (event) => {
|
|
7
|
-
scene.handleEvent?.(like, event);
|
|
8
|
-
const method = scene[event.type];
|
|
9
|
-
if (method)
|
|
10
|
-
method.call(scene, like, ...event.args);
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
export class SceneRunner {
|
|
14
|
-
constructor(container) {
|
|
15
|
-
Object.defineProperty(this, "engine", {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
configurable: true,
|
|
18
|
-
writable: true,
|
|
19
|
-
value: void 0
|
|
20
|
-
});
|
|
21
|
-
Object.defineProperty(this, "scene", {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
configurable: true,
|
|
24
|
-
writable: true,
|
|
25
|
-
value: null
|
|
26
|
-
});
|
|
27
|
-
Object.defineProperty(this, "handleEvent", {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
configurable: true,
|
|
30
|
-
writable: true,
|
|
31
|
-
value: (event) => {
|
|
32
|
-
if (!this.scene)
|
|
33
|
-
return;
|
|
34
|
-
this.scene.handleEvent?.(this.engine.like, event);
|
|
35
|
-
const method = this.scene[event.type];
|
|
36
|
-
if (method)
|
|
37
|
-
method.call(this.scene, this.engine.like, ...event.args);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
this.engine = new Engine(container);
|
|
41
|
-
}
|
|
42
|
-
get like() {
|
|
43
|
-
return this.engine.like;
|
|
44
|
-
}
|
|
45
|
-
setScene(scene) {
|
|
46
|
-
this.scene = scene;
|
|
47
|
-
scene.load?.(this.engine.like);
|
|
48
|
-
}
|
|
49
|
-
async start(scene) {
|
|
50
|
-
this.setScene(scene);
|
|
51
|
-
await this.engine.start(this.handleEvent);
|
|
52
|
-
}
|
|
53
|
-
dispose() {
|
|
54
|
-
this.engine.dispose();
|
|
55
|
-
this.scene = null;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Vector2 } from '../../core/vector2';
|
|
2
|
-
import type { Like2DEvent } from '../../core/events';
|
|
3
|
-
import type { Like } from '../../core/like';
|
|
4
|
-
export type Scene = {
|
|
5
|
-
load?(like: Like): void;
|
|
6
|
-
update?(like: Like, dt: number): void;
|
|
7
|
-
draw?(like: Like): void;
|
|
8
|
-
resize?(like: Like, size: Vector2, pixelSize: Vector2, fullscreen: boolean): void;
|
|
9
|
-
keypressed?(like: Like, scancode: string, keycode: string): void;
|
|
10
|
-
keyreleased?(like: Like, scancode: string, keycode: string): void;
|
|
11
|
-
mousepressed?(like: Like, x: number, y: number, button: number): void;
|
|
12
|
-
mousereleased?(like: Like, x: number, y: number, button: number): void;
|
|
13
|
-
gamepadpressed?(like: Like, gamepadIndex: number, buttonIndex: number, buttonName: string): void;
|
|
14
|
-
gamepadreleased?(like: Like, gamepadIndex: number, buttonIndex: number, buttonName: string): void;
|
|
15
|
-
actionpressed?(like: Like, action: string): void;
|
|
16
|
-
actionreleased?(like: Like, action: string): void;
|
|
17
|
-
handleEvent?(like: Like, event: Like2DEvent): void;
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=scene.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/adapters/scene/scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAClF,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtE,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACvE,cAAc,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACjG,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAClG,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CACpD,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { Scene } from './scene';
|
|
2
|
-
import { ImageHandle } from '../../core/graphics';
|
|
3
|
-
import type { Like } from '../../core/like';
|
|
4
|
-
export type StartupSceneConfig = {
|
|
5
|
-
nextScene: Scene;
|
|
6
|
-
draw?: (like: Like, logo: ImageHandle) => void;
|
|
7
|
-
logo?: ImageHandle;
|
|
8
|
-
};
|
|
9
|
-
export declare class StartupScene implements Scene {
|
|
10
|
-
private config;
|
|
11
|
-
private setScene;
|
|
12
|
-
private started;
|
|
13
|
-
private logo;
|
|
14
|
-
constructor(config: StartupSceneConfig, setScene: (scene: Scene) => void);
|
|
15
|
-
draw(like: Like): void;
|
|
16
|
-
mousepressed(_like: Like, _x: number, _y: number, _button: number): void;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=startup-scene.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"startup-scene.d.ts","sourceRoot":"","sources":["../../../src/adapters/scene/startup-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,KAAK,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AA4BF,qBAAa,YAAa,YAAW,KAAK;IAKtC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IALlB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAc;gBAGhB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAK1C,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAItB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAMzE"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { ImageHandle } from '../../core/graphics';
|
|
2
|
-
import { Vec2 } from '../../core/vector2';
|
|
3
|
-
import { Rect } from '../../core/rect';
|
|
4
|
-
const LOGO_DATA_URI = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB3aWR0aD0iMzAwbW0iIGhlaWdodD0iMTA1bW0iIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMwMCAxMDUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8cmVjdCB4PSIxMCIgeT0iMTEuMjMiIHdpZHRoPSIyODAiIGhlaWdodD0iODMuNTQ0IiBmaWxsPSIjZTQ4MDgwIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPgogPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8cmVjdCB4PSI5Ny40ODQiIHk9IjExLjIzIiB3aWR0aD0iNTIuNTE2IiBoZWlnaHQ9IjQ2LjIzNyIvPgogIDxyZWN0IHg9IjE1MCIgeT0iMTEuMjMiIHdpZHRoPSIzNS4wMTEiIGhlaWdodD0iNDYuMjM3Ii8+CiAgPHJlY3QgeD0iMTg1LjAxIiB5PSIxMS4yMyIgd2lkdGg9IjUyLjUxNiIgaGVpZ2h0PSI0Ni4yMzciLz4KICA8cmVjdCB4PSIyMzcuNTMiIHk9IjExLjIzIiB3aWR0aD0iNTIuNTE2IiBoZWlnaHQ9IjQ2LjIzNyIvPgogPC9nPgogPGc+CiAgPHJlY3QgeD0iMTMyLjQ5IiB5PSIxMS4yMyIgd2lkdGg9IjE3LjUwNSIgaGVpZ2h0PSIyNy40NjEiLz4KICA8cmVjdCB4PSIxNTAiIHk9IjI5LjMwMiIgd2lkdGg9IjguNzUyNyIgaGVpZ2h0PSIxOC43NzYiLz4KICA8cmVjdCB4PSIxNzYuMjYiIHk9IjI5LjMwMiIgd2lkdGg9IjguNzUyNyIgaGVpZ2h0PSIxOC43NzYiLz4KIDwvZz4KIDxyZWN0IHg9IjE1MCIgeT0iMTEuMjMiIHdpZHRoPSIxNy41MDUiIGhlaWdodD0iOC42ODQ1IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KIDxyZWN0IHg9IjE2Ny41MSIgeT0iMTEuMjMiIHdpZHRoPSIxNy41MDUiIGhlaWdodD0iOC42ODQ1IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KIDxnPgogIDxwYXRoIGQ9Im0yMzcuNTMgMzguNjkxLTE3LjUwNS05LjM4ODIgMTcuNTA1LTE4LjA3M3oiLz4KICA8cmVjdCB4PSIyMDIuODgiIHk9IjQ4LjA3OSIgd2lkdGg9IjE2Ljc3MiIgaGVpZ2h0PSI5LjM4ODIiLz4KICA8cmVjdCB4PSIyNzIuNTQiIHk9IjIwLjI2NiIgd2lkdGg9IjE2Ljc3MiIgaGVpZ2h0PSI5LjM4ODIiLz4KICA8cmVjdCB4PSIyNzIuNTQiIHk9IjM4LjY5MSIgd2lkdGg9IjE2Ljc3MiIgaGVpZ2h0PSI5LjM4ODIiLz4KICA8cGF0aCBkPSJtMjAyLjUyIDI5LjMwMiAwLjM2Njg1LTE4LjA3M2gxNy4xMzl6Ii8+CiA8L2c+CiA8cGF0aCBkPSJtNjQuMDc4IDEuMDA0Mi0zMy4zNzUgMzMuMzc1LTAuMDE3NDMgMC4wMTc0YTIzLjYxMiAyMy42MTIgMCAwIDAgMCAzMy4zOTIgMjMuNjEyIDIzLjYxMiAwIDAgMCAzMC4wMTIgMi44MDIyIDIzLjYxMiAyMy42MTIgMCAwIDEgN2UtMyAwLjU3MDM0IDIzLjYxMiAyMy42MTIgMCAwIDEtMjMuNjEyIDIzLjYxMmg1My45N2EyMy42MTIgMjMuNjEyIDAgMCAxLTIzLjYxMS0yMy42MTIgMjMuNjEyIDIzLjYxMiAwIDAgMSA3ZS0zIC0wLjU3MDM0IDIzLjYxMiAyMy42MTIgMCAwIDAgMzAuMDEyLTIuODAyOSAyMy42MTIgMjMuNjEyIDAgMCAwLTYuODhlLTQgLTMzLjM5MnoiIGZpbGw9IiM4MGMzZTQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ij4KICA8Y2lyY2xlIHRyYW5zZm9ybT0icm90YXRlKDEzNSkiIGN4PSItMjAuOTg4IiBjeT0iLTkzLjI0MyIgcj0iMjMuNjEyIi8+CiAgPGNpcmNsZSB0cmFuc2Zvcm09InJvdGF0ZSgxMzUpIiBjeD0iMi42MjM4IiBjeT0iLTY5LjYzMiIgcj0iMjMuNjEyIi8+CiAgPGNpcmNsZSBjeD0iOTEuMDYyIiBjeT0iNzEuMTYxIiByPSIyMy42MTIiLz4KICA8Y2lyY2xlIGN4PSIzNy4wOTMiIGN5PSI3MS4xNjEiIHI9IjIzLjYxMiIvPgogPC9nPgo8L3N2Zz4K';
|
|
5
|
-
const LOGO_WIDTH_RATIO = 0.5;
|
|
6
|
-
function defaultDraw(like, logo) {
|
|
7
|
-
const size = like.gfx.getCanvasSize();
|
|
8
|
-
const center = Vec2.mul(size, 0.5);
|
|
9
|
-
const bottomY = size[1] * 0.85;
|
|
10
|
-
like.gfx.clear('black');
|
|
11
|
-
if (logo.isReady()) {
|
|
12
|
-
const imgSize = logo.size;
|
|
13
|
-
const scale = (size[0] * LOGO_WIDTH_RATIO) / imgSize[0];
|
|
14
|
-
const drawSize = Vec2.mul(imgSize, scale);
|
|
15
|
-
const rect = Rect.fromCenter(center, drawSize);
|
|
16
|
-
like.gfx.draw(logo, Rect.position(rect), { scale: [scale, scale] });
|
|
17
|
-
}
|
|
18
|
-
like.gfx.print('white', 'Click to Start', [0, bottomY], {
|
|
19
|
-
align: 'center',
|
|
20
|
-
limit: size[0],
|
|
21
|
-
font: '32px sans-serif'
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
export class StartupScene {
|
|
25
|
-
constructor(config, setScene) {
|
|
26
|
-
Object.defineProperty(this, "config", {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
configurable: true,
|
|
29
|
-
writable: true,
|
|
30
|
-
value: config
|
|
31
|
-
});
|
|
32
|
-
Object.defineProperty(this, "setScene", {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
configurable: true,
|
|
35
|
-
writable: true,
|
|
36
|
-
value: setScene
|
|
37
|
-
});
|
|
38
|
-
Object.defineProperty(this, "started", {
|
|
39
|
-
enumerable: true,
|
|
40
|
-
configurable: true,
|
|
41
|
-
writable: true,
|
|
42
|
-
value: false
|
|
43
|
-
});
|
|
44
|
-
Object.defineProperty(this, "logo", {
|
|
45
|
-
enumerable: true,
|
|
46
|
-
configurable: true,
|
|
47
|
-
writable: true,
|
|
48
|
-
value: void 0
|
|
49
|
-
});
|
|
50
|
-
this.logo = config.logo ?? new ImageHandle(LOGO_DATA_URI);
|
|
51
|
-
}
|
|
52
|
-
draw(like) {
|
|
53
|
-
(this.config.draw ?? defaultDraw)(like, this.logo);
|
|
54
|
-
}
|
|
55
|
-
mousepressed(_like, _x, _y, _button) {
|
|
56
|
-
if (!this.started) {
|
|
57
|
-
this.started = true;
|
|
58
|
-
this.setScene(this.config.nextScene);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare const GAMEPAD_BUTTON_MAP: Record<string, number>;
|
|
2
|
-
export declare const GAMEPAD_BUTTON_NAMES: Record<number, string>;
|
|
3
|
-
export declare function getButtonName(buttonIndex: number): string;
|
|
4
|
-
export declare function getButtonIndex(buttonName: string): number | undefined;
|
|
5
|
-
//# sourceMappingURL=gamepad-button-map.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gamepad-button-map.d.ts","sourceRoot":"","sources":["../../src/core/gamepad-button-map.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiCrD,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiBvD,CAAC;AAEF,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// Button name to index mapping using physical layout
|
|
2
|
-
export const GAMEPAD_BUTTON_MAP = {
|
|
3
|
-
// Face buttons - physical positions (not labels)
|
|
4
|
-
'ButtonBottom': 0,
|
|
5
|
-
'ButtonRight': 1,
|
|
6
|
-
'ButtonLeft': 2,
|
|
7
|
-
'ButtonTop': 3,
|
|
8
|
-
// Bumpers and triggers
|
|
9
|
-
'LB': 4,
|
|
10
|
-
'L1': 4,
|
|
11
|
-
'RB': 5,
|
|
12
|
-
'R1': 5,
|
|
13
|
-
'LT': 6,
|
|
14
|
-
'L2': 6,
|
|
15
|
-
'RT': 7,
|
|
16
|
-
'R2': 7,
|
|
17
|
-
// Menu buttons
|
|
18
|
-
'Back': 8,
|
|
19
|
-
'Select': 8,
|
|
20
|
-
'Start': 9,
|
|
21
|
-
// Stick presses
|
|
22
|
-
'LS': 10,
|
|
23
|
-
'L3': 10,
|
|
24
|
-
'RS': 11,
|
|
25
|
-
'R3': 11,
|
|
26
|
-
// D-Pad
|
|
27
|
-
'DPadUp': 12,
|
|
28
|
-
'DPadDown': 13,
|
|
29
|
-
'DPadLeft': 14,
|
|
30
|
-
'DPadRight': 15,
|
|
31
|
-
};
|
|
32
|
-
// Reverse mapping: index to primary name
|
|
33
|
-
export const GAMEPAD_BUTTON_NAMES = {
|
|
34
|
-
0: 'ButtonBottom',
|
|
35
|
-
1: 'ButtonRight',
|
|
36
|
-
2: 'ButtonLeft',
|
|
37
|
-
3: 'ButtonTop',
|
|
38
|
-
4: 'LB',
|
|
39
|
-
5: 'RB',
|
|
40
|
-
6: 'LT',
|
|
41
|
-
7: 'RT',
|
|
42
|
-
8: 'Back',
|
|
43
|
-
9: 'Start',
|
|
44
|
-
10: 'LS',
|
|
45
|
-
11: 'RS',
|
|
46
|
-
12: 'DPadUp',
|
|
47
|
-
13: 'DPadDown',
|
|
48
|
-
14: 'DPadLeft',
|
|
49
|
-
15: 'DPadRight',
|
|
50
|
-
};
|
|
51
|
-
export function getButtonName(buttonIndex) {
|
|
52
|
-
return GAMEPAD_BUTTON_NAMES[buttonIndex] ?? `Button${buttonIndex}`;
|
|
53
|
-
}
|
|
54
|
-
export function getButtonIndex(buttonName) {
|
|
55
|
-
return GAMEPAD_BUTTON_MAP[buttonName];
|
|
56
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export interface ControllerMapping {
|
|
2
|
-
guid: string;
|
|
3
|
-
name: string;
|
|
4
|
-
platform: string;
|
|
5
|
-
buttons: Map<string, number>;
|
|
6
|
-
axes: Map<string, number>;
|
|
7
|
-
dpads: Map<string, {
|
|
8
|
-
hat: number;
|
|
9
|
-
value: number;
|
|
10
|
-
}>;
|
|
11
|
-
}
|
|
12
|
-
export declare const SDL_BUTTONS: readonly ["a", "b", "x", "y", "back", "start", "guide", "leftshoulder", "rightshoulder", "lefttrigger", "righttrigger", "leftstick", "rightstick", "dpup", "dpdown", "dpleft", "dpright", "misc1", "misc2", "paddle1", "paddle2", "paddle3", "paddle4", "touchpad"];
|
|
13
|
-
export type SDLButton = (typeof SDL_BUTTONS)[number];
|
|
14
|
-
export declare const SDL_AXES: readonly ["leftx", "lefty", "rightx", "righty"];
|
|
15
|
-
export type SDLAxis = (typeof SDL_AXES)[number];
|
|
16
|
-
export declare class GamepadDatabase {
|
|
17
|
-
private mappings;
|
|
18
|
-
private vendorProductIndex;
|
|
19
|
-
private loaded;
|
|
20
|
-
load(dbContent: string): void;
|
|
21
|
-
private extractVendorProductKey;
|
|
22
|
-
/**
|
|
23
|
-
* Check if the database has been loaded
|
|
24
|
-
*/
|
|
25
|
-
isLoaded(): boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Get the number of loaded mappings
|
|
28
|
-
*/
|
|
29
|
-
getMappingCount(): number;
|
|
30
|
-
/**
|
|
31
|
-
* Look up a controller mapping by GUID
|
|
32
|
-
*/
|
|
33
|
-
getMapping(guid: string): ControllerMapping | undefined;
|
|
34
|
-
getMappingByVendorProduct(vendor: number, product: number): ControllerMapping | undefined;
|
|
35
|
-
/**
|
|
36
|
-
* Check if a controller is in the database
|
|
37
|
-
*/
|
|
38
|
-
hasController(guid: string): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Get all mappings for a specific platform
|
|
41
|
-
*/
|
|
42
|
-
getMappingsByPlatform(platform: string): ControllerMapping[];
|
|
43
|
-
/**
|
|
44
|
-
* Parse a single database line
|
|
45
|
-
*/
|
|
46
|
-
private parseLine;
|
|
47
|
-
}
|
|
48
|
-
export declare const gamepadDatabase: GamepadDatabase;
|
|
49
|
-
//# sourceMappingURL=gamepad-db.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gamepad-db.d.ts","sourceRoot":"","sources":["../../src/core/gamepad-db.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAGD,eAAO,MAAM,WAAW,qQASd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAGrD,eAAO,MAAM,QAAQ,iDAGX,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,MAAM,CAAS;IAEvB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA0B7B,OAAO,CAAC,uBAAuB;IAU/B;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIvD,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAKzF;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAa5D;;OAEG;IACH,OAAO,CAAC,SAAS;CAiFlB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|