@benev/tact 0.1.0-5 → 0.1.0
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 +0 -12
- package/package.json +9 -9
- package/s/core/bindings/parts/defaults.ts +2 -2
- package/s/core/bindings/resolver.ts +24 -17
- package/s/core/core.test.ts +22 -0
- package/s/core/testing/testing.ts +2 -1
- package/x/core/bindings/parts/defaults.d.ts +1 -1
- package/x/core/bindings/parts/defaults.js +2 -2
- package/x/core/bindings/parts/defaults.js.map +1 -1
- package/x/core/bindings/resolver.js +20 -16
- package/x/core/bindings/resolver.js.map +1 -1
- package/x/core/core.test.d.ts +1 -0
- package/x/core/core.test.js +21 -0
- package/x/core/core.test.js.map +1 -1
- package/x/core/devices/infra/group.d.ts +1 -2
- package/x/core/devices/standard/keyboard.d.ts +1 -4
- package/x/core/devices/standard/pointer.d.ts +1 -4
- package/x/core/hub/port.d.ts +2 -3
- package/x/core/testing/testing.d.ts +5 -0
- package/x/core/testing/testing.js +1 -0
- package/x/core/testing/testing.js.map +1 -1
- package/x/deck/deck.d.ts +1 -4
- package/x/deck/parts/catalog.d.ts +1 -2
- package/x/deck/parts/db.d.ts +1 -4
- package/x/deck/parts/overlay-visibility.d.ts +1 -4
- package/x/demo/game/game.d.ts +1 -4
- package/x/demo/main.bundle.min.js +45 -45
- package/x/demo/main.bundle.min.js.map +4 -4
- package/x/demo/ui/theater/view.d.ts +1 -1
- package/x/index.html +20 -20
- package/x/nubs/stick/component.d.ts +1 -1
- package/x/nubs/vpad/component.d.ts +1 -1
package/README.md
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> [!CAUTION]
|
|
3
|
-
> ### 🚨🚨 TACT IS UNDER DEVELOPMENT!! 🚨🚨
|
|
4
|
-
> *everything is half-broken right now.. just gimmie a minute to finish coding this, will ya?*
|
|
5
|
-
|
|
6
|
-
<br></br>
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
<br></br>
|
|
13
|
-
|
|
14
2
|
# 🎮 @benev/tact
|
|
15
3
|
> *web game input library, from keypress to couch co-op*
|
|
16
4
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@benev/tact",
|
|
3
|
-
"version": "0.1.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "keybindings and gamepad support for web games",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Chase Moskal <chasemoskal@gmail.com>",
|
|
@@ -29,21 +29,21 @@
|
|
|
29
29
|
"count": "find s -path '*/_archive' -prune -o -name '*.ts' -exec wc -l {} +"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"lit": "^3.3.
|
|
32
|
+
"lit": "^3.3.2"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@benev/math": "^0.2.0
|
|
35
|
+
"@benev/math": "^0.2.0",
|
|
36
36
|
"@e280/kv": "^0.1.0",
|
|
37
|
-
"@e280/sly": "^0.2.
|
|
38
|
-
"@e280/strata": "^0.2.
|
|
39
|
-
"@e280/stz": "^0.2.
|
|
37
|
+
"@e280/sly": "^0.2.5",
|
|
38
|
+
"@e280/strata": "^0.2.8",
|
|
39
|
+
"@e280/stz": "^0.2.24"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@e280/science": "^0.1.
|
|
43
|
-
"@e280/scute": "^0.1.
|
|
42
|
+
"@e280/science": "^0.1.8",
|
|
43
|
+
"@e280/scute": "^0.1.5",
|
|
44
44
|
"http-server": "^14.1.1",
|
|
45
45
|
"npm-run-all": "^4.1.5",
|
|
46
|
-
"typescript": "^5.9.
|
|
46
|
+
"typescript": "^5.9.3"
|
|
47
47
|
},
|
|
48
48
|
"repository": {
|
|
49
49
|
"type": "git",
|
|
@@ -3,10 +3,10 @@ import {Code, CodeSettings, CodeState} from "../types.js"
|
|
|
3
3
|
|
|
4
4
|
export const defaultHoldTime = 250
|
|
5
5
|
|
|
6
|
-
export function defaultCodeState([,,settings]: Code): CodeState {
|
|
6
|
+
export function defaultCodeState([,,settings]: Code, now: number): CodeState {
|
|
7
7
|
return {
|
|
8
8
|
lastValue: 0,
|
|
9
|
-
holdStart:
|
|
9
|
+
holdStart: now,
|
|
10
10
|
settings: defaultifyCodeSettings(settings),
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import {pub, obMap, GMap} from "@e280/stz"
|
|
3
3
|
import {Action} from "./action.js"
|
|
4
4
|
import {SampleMap} from "./sample-map.js"
|
|
5
5
|
import {lensAlgo} from "./parts/lens-algo.js"
|
|
@@ -12,7 +12,7 @@ export class Resolver<B extends Bindings> {
|
|
|
12
12
|
#modes = new Set<keyof B>()
|
|
13
13
|
#sampleMap = new SampleMap()
|
|
14
14
|
#now = 0
|
|
15
|
-
#codeStates = new
|
|
15
|
+
#codeStates = new GMap<string, CodeState>()
|
|
16
16
|
#update = pub()
|
|
17
17
|
|
|
18
18
|
constructor(public bindings: B) {
|
|
@@ -20,7 +20,7 @@ export class Resolver<B extends Bindings> {
|
|
|
20
20
|
const action = new Action()
|
|
21
21
|
this.#update.subscribe(() => {
|
|
22
22
|
action.value = this.#modes.has(mode)
|
|
23
|
-
? this.#resolveAtom()(atom)
|
|
23
|
+
? this.#resolveAtom([])(atom, mode as string)
|
|
24
24
|
: 0
|
|
25
25
|
})
|
|
26
26
|
return action
|
|
@@ -35,24 +35,31 @@ export class Resolver<B extends Bindings> {
|
|
|
35
35
|
return this.actions
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
#resolveCode(
|
|
38
|
+
#resolveCode(path: string[], code: string, settings?: Partial<CodeSettings>) {
|
|
39
39
|
const state = this.#codeStates.guarantee(
|
|
40
|
-
|
|
41
|
-
() => defaultCodeState(["code", code, settings]),
|
|
40
|
+
path.join("/"),
|
|
41
|
+
() => defaultCodeState(["code", code, settings], this.#now),
|
|
42
42
|
)
|
|
43
43
|
const value = this.#sampleMap.get(code) ?? 0
|
|
44
44
|
return lensAlgo(this.#now, state, value)
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
#resolveAtom = (
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
#resolveAtom = (path: string[]) => (atom: Atom, zone: string | number): number => {
|
|
48
|
+
const nextPath = [
|
|
49
|
+
...path,
|
|
50
|
+
String(zone),
|
|
51
|
+
typeof atom === "string" ? atom : atom[0],
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
const resolveAtom = this.#resolveAtom(nextPath)
|
|
55
|
+
|
|
56
|
+
if (typeof atom === "string")
|
|
57
|
+
return this.#resolveCode(nextPath, atom)
|
|
58
|
+
|
|
52
59
|
else switch (atom[0]) {
|
|
53
60
|
case "code": {
|
|
54
61
|
const [, code, settings] = atom
|
|
55
|
-
return this.#resolveCode(
|
|
62
|
+
return this.#resolveCode(nextPath, code, settings)
|
|
56
63
|
}
|
|
57
64
|
case "and": {
|
|
58
65
|
const [,...atoms] = atom
|
|
@@ -66,13 +73,13 @@ export class Resolver<B extends Bindings> {
|
|
|
66
73
|
}
|
|
67
74
|
case "not": {
|
|
68
75
|
const [, subject] = atom
|
|
69
|
-
const value = resolveAtom(subject)
|
|
76
|
+
const value = resolveAtom(subject, "subject")
|
|
70
77
|
return (value > 0) ? 0 : 1
|
|
71
78
|
}
|
|
72
79
|
case "cond": {
|
|
73
80
|
const [, subject, guard] = atom
|
|
74
|
-
return (resolveAtom(guard) > 0)
|
|
75
|
-
? resolveAtom(subject)
|
|
81
|
+
return (resolveAtom(guard, "guard") > 0)
|
|
82
|
+
? resolveAtom(subject, "subject")
|
|
76
83
|
: 0
|
|
77
84
|
}
|
|
78
85
|
case "mods": {
|
|
@@ -85,9 +92,9 @@ export class Resolver<B extends Bindings> {
|
|
|
85
92
|
maybe(modifiers.alt ?? false, "AltLeft", "AltRight"),
|
|
86
93
|
maybe(modifiers.meta ?? false, "MetaLeft", "MetaRight"),
|
|
87
94
|
maybe(modifiers.shift ?? false, "ShiftLeft", "ShiftRight"),
|
|
88
|
-
]])
|
|
95
|
+
]], "guard")
|
|
89
96
|
return (guard > 0)
|
|
90
|
-
? resolveAtom(subject)
|
|
97
|
+
? resolveAtom(subject, "subject")
|
|
91
98
|
: 0
|
|
92
99
|
}
|
|
93
100
|
}
|
package/s/core/core.test.ts
CHANGED
|
@@ -24,6 +24,28 @@ export default Science.suite({
|
|
|
24
24
|
}
|
|
25
25
|
}),
|
|
26
26
|
|
|
27
|
+
"hold timing": test(async() => {
|
|
28
|
+
const {time, device, resolve} = testSetupAlpha()
|
|
29
|
+
{
|
|
30
|
+
time.frame = 1
|
|
31
|
+
device.setSample("KeyG", 0)
|
|
32
|
+
const actions = resolve()
|
|
33
|
+
expect(actions.basic.grenade.value).is(0)
|
|
34
|
+
}
|
|
35
|
+
{
|
|
36
|
+
time.frame = 2
|
|
37
|
+
device.setSample("KeyG", 1)
|
|
38
|
+
const actions = resolve()
|
|
39
|
+
expect(actions.basic.grenade.value).is(0)
|
|
40
|
+
}
|
|
41
|
+
{
|
|
42
|
+
time.frame = 15
|
|
43
|
+
device.setSample("KeyG", 1)
|
|
44
|
+
const actions = resolve()
|
|
45
|
+
expect(actions.basic.grenade.value).is(1)
|
|
46
|
+
}
|
|
47
|
+
}),
|
|
48
|
+
|
|
27
49
|
"hub": Science.suite({
|
|
28
50
|
"device inputs work": test(async() => {
|
|
29
51
|
const {hub, time} = testSetupBravo()
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {Hub} from "../hub/hub.js"
|
|
3
3
|
import {Port} from "../hub/port.js"
|
|
4
4
|
import {Device} from "../devices/device.js"
|
|
5
|
-
import {asBindings} from "../bindings/types.js"
|
|
5
|
+
import {asBindings, Code} from "../bindings/types.js"
|
|
6
6
|
import {Resolver} from "../bindings/resolver.js"
|
|
7
7
|
import {SampleMap} from "../bindings/sample-map.js"
|
|
8
8
|
import {SamplerDevice} from "../devices/infra/sampler.js"
|
|
@@ -20,6 +20,7 @@ export function testBindings() {
|
|
|
20
20
|
basic: {
|
|
21
21
|
jump: "Space",
|
|
22
22
|
shoot: "pointer.button.left",
|
|
23
|
+
grenade: <Code>["code", "KeyG", {timing: ["hold", 200]}]
|
|
23
24
|
},
|
|
24
25
|
})
|
|
25
26
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export const defaultHoldTime = 250;
|
|
2
|
-
export function defaultCodeState([, , settings]) {
|
|
2
|
+
export function defaultCodeState([, , settings], now) {
|
|
3
3
|
return {
|
|
4
4
|
lastValue: 0,
|
|
5
|
-
holdStart:
|
|
5
|
+
holdStart: now,
|
|
6
6
|
settings: defaultifyCodeSettings(settings),
|
|
7
7
|
};
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../s/core/bindings/parts/defaults.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAElC,MAAM,UAAU,gBAAgB,CAAC,CAAC,EAAC,EAAC,QAAQ,CAAO;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../s/core/bindings/parts/defaults.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAElC,MAAM,UAAU,gBAAgB,CAAC,CAAC,EAAC,EAAC,QAAQ,CAAO,EAAE,GAAW;IAC/D,OAAO;QACN,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,CAAC;KAC1C,CAAA;AACF,CAAC;AAED,SAAS,mBAAmB;IAC3B,OAAO;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,CAAC,QAAQ,CAAC;KAClB,CAAA;AACF,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAiC,EAAE;IAClE,OAAO;QACN,GAAG,mBAAmB,EAAE;QACxB,GAAG,OAAO;KACV,CAAA;AACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { pub, obMap, GMap } from "@e280/stz";
|
|
2
2
|
import { Action } from "./action.js";
|
|
3
3
|
import { SampleMap } from "./sample-map.js";
|
|
4
4
|
import { lensAlgo } from "./parts/lens-algo.js";
|
|
@@ -10,7 +10,7 @@ export class Resolver {
|
|
|
10
10
|
#modes = new Set();
|
|
11
11
|
#sampleMap = new SampleMap();
|
|
12
12
|
#now = 0;
|
|
13
|
-
#codeStates = new
|
|
13
|
+
#codeStates = new GMap();
|
|
14
14
|
#update = pub();
|
|
15
15
|
constructor(bindings) {
|
|
16
16
|
this.bindings = bindings;
|
|
@@ -18,7 +18,7 @@ export class Resolver {
|
|
|
18
18
|
const action = new Action();
|
|
19
19
|
this.#update.subscribe(() => {
|
|
20
20
|
action.value = this.#modes.has(mode)
|
|
21
|
-
? this.#resolveAtom()(atom)
|
|
21
|
+
? this.#resolveAtom([])(atom, mode)
|
|
22
22
|
: 0;
|
|
23
23
|
});
|
|
24
24
|
return action;
|
|
@@ -31,21 +31,25 @@ export class Resolver {
|
|
|
31
31
|
this.#update();
|
|
32
32
|
return this.actions;
|
|
33
33
|
}
|
|
34
|
-
#resolveCode(
|
|
35
|
-
const state = this.#codeStates.guarantee(
|
|
34
|
+
#resolveCode(path, code, settings) {
|
|
35
|
+
const state = this.#codeStates.guarantee(path.join("/"), () => defaultCodeState(["code", code, settings], this.#now));
|
|
36
36
|
const value = this.#sampleMap.get(code) ?? 0;
|
|
37
37
|
return lensAlgo(this.#now, state, value);
|
|
38
38
|
}
|
|
39
|
-
#resolveAtom = (
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
#resolveAtom = (path) => (atom, zone) => {
|
|
40
|
+
const nextPath = [
|
|
41
|
+
...path,
|
|
42
|
+
String(zone),
|
|
43
|
+
typeof atom === "string" ? atom : atom[0],
|
|
44
|
+
];
|
|
45
|
+
const resolveAtom = this.#resolveAtom(nextPath);
|
|
46
|
+
if (typeof atom === "string")
|
|
47
|
+
return this.#resolveCode(nextPath, atom);
|
|
44
48
|
else
|
|
45
49
|
switch (atom[0]) {
|
|
46
50
|
case "code": {
|
|
47
51
|
const [, code, settings] = atom;
|
|
48
|
-
return this.#resolveCode(
|
|
52
|
+
return this.#resolveCode(nextPath, code, settings);
|
|
49
53
|
}
|
|
50
54
|
case "and": {
|
|
51
55
|
const [, ...atoms] = atom;
|
|
@@ -59,13 +63,13 @@ export class Resolver {
|
|
|
59
63
|
}
|
|
60
64
|
case "not": {
|
|
61
65
|
const [, subject] = atom;
|
|
62
|
-
const value = resolveAtom(subject);
|
|
66
|
+
const value = resolveAtom(subject, "subject");
|
|
63
67
|
return (value > 0) ? 0 : 1;
|
|
64
68
|
}
|
|
65
69
|
case "cond": {
|
|
66
70
|
const [, subject, guard] = atom;
|
|
67
|
-
return (resolveAtom(guard) > 0)
|
|
68
|
-
? resolveAtom(subject)
|
|
71
|
+
return (resolveAtom(guard, "guard") > 0)
|
|
72
|
+
? resolveAtom(subject, "subject")
|
|
69
73
|
: 0;
|
|
70
74
|
}
|
|
71
75
|
case "mods": {
|
|
@@ -78,9 +82,9 @@ export class Resolver {
|
|
|
78
82
|
maybe(modifiers.alt ?? false, "AltLeft", "AltRight"),
|
|
79
83
|
maybe(modifiers.meta ?? false, "MetaLeft", "MetaRight"),
|
|
80
84
|
maybe(modifiers.shift ?? false, "ShiftLeft", "ShiftRight"),
|
|
81
|
-
]]);
|
|
85
|
+
]], "guard");
|
|
82
86
|
return (guard > 0)
|
|
83
|
-
? resolveAtom(subject)
|
|
87
|
+
? resolveAtom(subject, "subject")
|
|
84
88
|
: 0;
|
|
85
89
|
}
|
|
86
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../s/core/bindings/resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../s/core/bindings/resolver.ts"],"names":[],"mappings":"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"}
|
package/x/core/core.test.d.ts
CHANGED
package/x/core/core.test.js
CHANGED
|
@@ -21,6 +21,27 @@ export default Science.suite({
|
|
|
21
21
|
expect(actions.basic.shoot.value).is(3);
|
|
22
22
|
}
|
|
23
23
|
}),
|
|
24
|
+
"hold timing": test(async () => {
|
|
25
|
+
const { time, device, resolve } = testSetupAlpha();
|
|
26
|
+
{
|
|
27
|
+
time.frame = 1;
|
|
28
|
+
device.setSample("KeyG", 0);
|
|
29
|
+
const actions = resolve();
|
|
30
|
+
expect(actions.basic.grenade.value).is(0);
|
|
31
|
+
}
|
|
32
|
+
{
|
|
33
|
+
time.frame = 2;
|
|
34
|
+
device.setSample("KeyG", 1);
|
|
35
|
+
const actions = resolve();
|
|
36
|
+
expect(actions.basic.grenade.value).is(0);
|
|
37
|
+
}
|
|
38
|
+
{
|
|
39
|
+
time.frame = 15;
|
|
40
|
+
device.setSample("KeyG", 1);
|
|
41
|
+
const actions = resolve();
|
|
42
|
+
expect(actions.basic.grenade.value).is(1);
|
|
43
|
+
}
|
|
44
|
+
}),
|
|
24
45
|
"hub": Science.suite({
|
|
25
46
|
"device inputs work": test(async () => {
|
|
26
47
|
const { hub, time } = testSetupBravo();
|
package/x/core/core.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.test.js","sourceRoot":"","sources":["../../s/core/core.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.test.js","sourceRoot":"","sources":["../../s/core/core.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { SetG } from "@e280/stz";
|
|
2
1
|
import { Device } from "../device.js";
|
|
3
2
|
export declare class GroupDevice extends Device {
|
|
4
3
|
#private;
|
|
5
|
-
devices:
|
|
4
|
+
devices: import("@e280/stz").GSet<Device>;
|
|
6
5
|
constructor(...devices: Device[]);
|
|
7
6
|
samples(): Generator<[string, number], void, unknown>;
|
|
8
7
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { SamplerDevice } from "../infra/sampler.js";
|
|
2
2
|
export declare class KeyboardDevice extends SamplerDevice {
|
|
3
3
|
#private;
|
|
4
|
-
dispose:
|
|
5
|
-
(): void;
|
|
6
|
-
schedule(fn: () => void): any;
|
|
7
|
-
};
|
|
4
|
+
dispose: import("@e280/stz").Disposer;
|
|
8
5
|
constructor(target?: EventTarget);
|
|
9
6
|
}
|
|
@@ -4,10 +4,7 @@ export declare class PointerDevice extends SamplerDevice {
|
|
|
4
4
|
#private;
|
|
5
5
|
client: Vec2;
|
|
6
6
|
movement: Vec2;
|
|
7
|
-
dispose:
|
|
8
|
-
(): void;
|
|
9
|
-
schedule(fn: () => void): any;
|
|
10
|
-
};
|
|
7
|
+
dispose: import("@e280/stz").Disposer;
|
|
11
8
|
constructor(target?: EventTarget);
|
|
12
9
|
static buttonCode(event: PointerEvent): string;
|
|
13
10
|
static wheelCodes(event: WheelEvent): [string, number][];
|
package/x/core/hub/port.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { SetG } from "@e280/stz";
|
|
2
1
|
import { Bindings } from "../bindings/types.js";
|
|
3
2
|
import { Resolver } from "../bindings/resolver.js";
|
|
4
3
|
export declare class Port<B extends Bindings> extends Resolver<B> {
|
|
5
4
|
#private;
|
|
6
|
-
readonly devices:
|
|
7
|
-
readonly modes:
|
|
5
|
+
readonly devices: import("@e280/stz").GSet<import("../index.js").Device>;
|
|
6
|
+
readonly modes: import("@e280/stz").GSet<keyof B>;
|
|
8
7
|
constructor(bindings: B);
|
|
9
8
|
resolve(now?: number): import("../bindings/types.js").Actions<B>;
|
|
10
9
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Hub } from "../hub/hub.js";
|
|
2
2
|
import { Device } from "../devices/device.js";
|
|
3
|
+
import { Code } from "../bindings/types.js";
|
|
3
4
|
import { Resolver } from "../bindings/resolver.js";
|
|
4
5
|
import { SamplerDevice } from "../devices/infra/sampler.js";
|
|
5
6
|
export declare class TestTime {
|
|
@@ -10,6 +11,7 @@ export declare function testBindings(): {
|
|
|
10
11
|
basic: {
|
|
11
12
|
jump: string;
|
|
12
13
|
shoot: string;
|
|
14
|
+
grenade: Code;
|
|
13
15
|
};
|
|
14
16
|
};
|
|
15
17
|
export declare function testPlug<C extends Device>(hub: Hub<any>, device: C): C;
|
|
@@ -19,12 +21,14 @@ export declare function testSetupAlpha(): {
|
|
|
19
21
|
basic: {
|
|
20
22
|
jump: string;
|
|
21
23
|
shoot: string;
|
|
24
|
+
grenade: Code;
|
|
22
25
|
};
|
|
23
26
|
}>;
|
|
24
27
|
resolve: () => import("../bindings/types.js").Actions<{
|
|
25
28
|
basic: {
|
|
26
29
|
jump: string;
|
|
27
30
|
shoot: string;
|
|
31
|
+
grenade: Code;
|
|
28
32
|
};
|
|
29
33
|
}>;
|
|
30
34
|
time: TestTime;
|
|
@@ -34,6 +38,7 @@ export declare function testSetupBravo(): {
|
|
|
34
38
|
basic: {
|
|
35
39
|
jump: string;
|
|
36
40
|
shoot: string;
|
|
41
|
+
grenade: Code;
|
|
37
42
|
};
|
|
38
43
|
}, any>;
|
|
39
44
|
time: TestTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../s/core/testing/testing.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,eAAe,CAAA;AACjC,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAEnC,OAAO,EAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../s/core/testing/testing.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,eAAe,CAAA;AACjC,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAEnC,OAAO,EAAC,UAAU,EAAO,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAA;AAEzD,MAAM,OAAO,QAAQ;IACpB,KAAK,GAAG,CAAC,CAAA;IAET,IAAI,GAAG;QACN,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IACpC,CAAC;CACD;AAED,MAAM,UAAU,YAAY;IAC3B,OAAO,UAAU,CAAC;QACjB,KAAK,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,qBAAqB;YAC5B,OAAO,EAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAC,CAAC;SACxD;KACD,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAmB,GAAa,EAAE,MAAS;IAClE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChB,OAAO,MAAM,CAAA;AACd,CAAC;AAED,MAAM,UAAU,cAAc;IAC7B,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC3B,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAA;IAClC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CACrC,IAAI,CAAC,GAAG,EACR,KAAY,EACZ,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAC/B,CAAA;IACD,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,cAAc;IAC7B,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,GAAG,EAAE;QACjB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,OAAO,IAAI,CAAA;IACZ,CAAC,CAAA;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACrD,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,CAAA;AACnB,CAAC"}
|
package/x/deck/deck.d.ts
CHANGED
|
@@ -19,10 +19,7 @@ export declare class Deck<B extends Bindings, MB extends MetaBindings = any> {
|
|
|
19
19
|
hub: Hub<B, MB>;
|
|
20
20
|
db: Db;
|
|
21
21
|
static load<B extends Bindings, MB extends MetaBindings = any>(options: DeckOptions<B, MB>): Promise<Deck<B, any>>;
|
|
22
|
-
dispose:
|
|
23
|
-
(): void;
|
|
24
|
-
schedule(fn: () => void): any;
|
|
25
|
-
};
|
|
22
|
+
dispose: import("@e280/stz").Disposer;
|
|
26
23
|
deviceSkins: DeviceSkins;
|
|
27
24
|
primaryDevice: PrimaryDevice;
|
|
28
25
|
overlayVisibility: OverlayVisibility;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MapG } from "@e280/stz";
|
|
2
1
|
import { MetaBindings } from "../../core/hub/types.js";
|
|
3
2
|
import { Bindings } from "../../core/bindings/types.js";
|
|
4
3
|
export type Profile = {
|
|
@@ -12,7 +11,7 @@ export type CatalogData = {
|
|
|
12
11
|
metaBindings: MetaBindings | null;
|
|
13
12
|
};
|
|
14
13
|
export declare class Catalog {
|
|
15
|
-
profiles:
|
|
14
|
+
profiles: import("@e280/stz").GMap<string, Profile>;
|
|
16
15
|
portProfiles: (string | null)[];
|
|
17
16
|
metaBindings: MetaBindings | null;
|
|
18
17
|
constructor(data?: CatalogData);
|
package/x/deck/parts/db.d.ts
CHANGED
|
@@ -7,10 +7,7 @@ export declare class Db {
|
|
|
7
7
|
private store;
|
|
8
8
|
$catalog: SignalFn<Catalog>;
|
|
9
9
|
static load(store: Store<CatalogData>): Promise<Db>;
|
|
10
|
-
dispose:
|
|
11
|
-
(): void;
|
|
12
|
-
schedule(fn: () => void): any;
|
|
13
|
-
};
|
|
10
|
+
dispose: import("@e280/stz").Disposer;
|
|
14
11
|
constructor(store: Store<CatalogData>, $catalog: SignalFn<Catalog>);
|
|
15
12
|
reload(): Promise<void>;
|
|
16
13
|
save(catalog: Catalog): Promise<void>;
|
|
@@ -5,10 +5,7 @@ export declare class OverlayVisibility {
|
|
|
5
5
|
hub: Hub<any>;
|
|
6
6
|
deviceSkins: DeviceSkins;
|
|
7
7
|
auto: boolean;
|
|
8
|
-
dispose:
|
|
9
|
-
(): void;
|
|
10
|
-
schedule(fn: () => void): any;
|
|
11
|
-
};
|
|
8
|
+
dispose: import("@e280/stz").Disposer;
|
|
12
9
|
/** manual override for whether the ports view should be visible */
|
|
13
10
|
readonly $manual: import("@e280/strata").SignalFn<boolean>;
|
|
14
11
|
/** derived signal about whether the ports view should be visible */
|
package/x/demo/game/game.d.ts
CHANGED
|
@@ -7,10 +7,7 @@ export declare class Game {
|
|
|
7
7
|
deck: GameDeck;
|
|
8
8
|
static load(): Promise<Game>;
|
|
9
9
|
logic: Logic;
|
|
10
|
-
dispose:
|
|
11
|
-
(): void;
|
|
12
|
-
schedule(fn: () => void): any;
|
|
13
|
-
};
|
|
10
|
+
dispose: import("@e280/stz").Disposer;
|
|
14
11
|
state: State;
|
|
15
12
|
renderer: Renderer;
|
|
16
13
|
constructor(deck: GameDeck);
|