@benev/tact 0.1.0-5 → 0.1.1
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/parts/lens-algo.ts +2 -1
- package/s/core/bindings/resolver.ts +24 -17
- package/s/core/core.test.ts +69 -16
- package/s/core/testing/testing.ts +12 -10
- 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/parts/lens-algo.js +1 -1
- package/x/core/bindings/parts/lens-algo.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 +59 -16
- 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 +17 -5
- package/x/core/testing/testing.js +12 -10
- 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/x/core/core.test.js
CHANGED
|
@@ -4,16 +4,16 @@ import { SamplerDevice } from "./devices/infra/sampler.js";
|
|
|
4
4
|
import { testPlug, testSetupAlpha, testSetupBravo } from "./testing/testing.js";
|
|
5
5
|
export default Science.suite({
|
|
6
6
|
"sample to action value": test(async () => {
|
|
7
|
-
const {
|
|
7
|
+
const { clock, device, resolve } = testSetupAlpha();
|
|
8
8
|
{
|
|
9
|
-
|
|
9
|
+
clock.frame = 1;
|
|
10
10
|
device.setSample("Space", 1);
|
|
11
11
|
const actions = resolve();
|
|
12
12
|
expect(actions.basic.jump.value).is(1);
|
|
13
13
|
expect(actions.basic.shoot.value).is(0);
|
|
14
14
|
}
|
|
15
15
|
{
|
|
16
|
-
|
|
16
|
+
clock.frame = 2;
|
|
17
17
|
device.setSample("Space", 2);
|
|
18
18
|
device.setSample("pointer.button.left", 3);
|
|
19
19
|
const actions = resolve();
|
|
@@ -21,71 +21,114 @@ export default Science.suite({
|
|
|
21
21
|
expect(actions.basic.shoot.value).is(3);
|
|
22
22
|
}
|
|
23
23
|
}),
|
|
24
|
+
"hold timing and behavior": test(async () => {
|
|
25
|
+
const { clock, device, resolve, actions } = testSetupAlpha();
|
|
26
|
+
const proceed = (options) => {
|
|
27
|
+
clock.time = options.time;
|
|
28
|
+
device.setSample("KeyG", options.value);
|
|
29
|
+
resolve();
|
|
30
|
+
};
|
|
31
|
+
let count = 0;
|
|
32
|
+
actions.basic.grenade.onDown(() => { count++; });
|
|
33
|
+
const getValue = () => actions.basic.grenade.value;
|
|
34
|
+
// start doing nothing
|
|
35
|
+
proceed({ time: 0, value: 0 });
|
|
36
|
+
expect(getValue()).is(0);
|
|
37
|
+
expect(count).is(0);
|
|
38
|
+
// start holding
|
|
39
|
+
proceed({ time: 10, value: 1 });
|
|
40
|
+
expect(getValue()).is(0);
|
|
41
|
+
expect(count).is(0);
|
|
42
|
+
// keep holding
|
|
43
|
+
proceed({ time: 20, value: 1 });
|
|
44
|
+
expect(getValue()).is(0);
|
|
45
|
+
expect(count).is(0);
|
|
46
|
+
// held long enough to trigger down
|
|
47
|
+
proceed({ time: 210, value: 1 });
|
|
48
|
+
expect(getValue()).is(1);
|
|
49
|
+
expect(count).is(1);
|
|
50
|
+
// release, shouldn't trigger new down
|
|
51
|
+
proceed({ time: 220, value: 0 });
|
|
52
|
+
expect(getValue()).is(0);
|
|
53
|
+
expect(count).is(1);
|
|
54
|
+
// start holding again
|
|
55
|
+
proceed({ time: 230, value: 1 });
|
|
56
|
+
expect(getValue()).is(0);
|
|
57
|
+
expect(count).is(1);
|
|
58
|
+
// keep holding again
|
|
59
|
+
proceed({ time: 330, value: 1 });
|
|
60
|
+
expect(getValue()).is(0);
|
|
61
|
+
expect(count).is(1);
|
|
62
|
+
// held long enough again to trigger down
|
|
63
|
+
proceed({ time: 430, value: 1 });
|
|
64
|
+
expect(getValue()).is(1);
|
|
65
|
+
expect(count).is(2);
|
|
66
|
+
}),
|
|
24
67
|
"hub": Science.suite({
|
|
25
68
|
"device inputs work": test(async () => {
|
|
26
|
-
const { hub,
|
|
69
|
+
const { hub, clock } = testSetupBravo();
|
|
27
70
|
const d1 = testPlug(hub, new SamplerDevice());
|
|
28
71
|
d1.setSample("Space", 1);
|
|
29
|
-
const [p1, p2] = hub.poll(time
|
|
72
|
+
const [p1, p2] = hub.poll(clock.time);
|
|
30
73
|
expect(p1.actions.basic.jump.value).is(1);
|
|
31
74
|
expect(p2.actions.basic.jump.value).is(0);
|
|
32
75
|
}),
|
|
33
76
|
"reveal overlay works": test(async () => {
|
|
34
|
-
const { hub,
|
|
77
|
+
const { hub, clock } = testSetupBravo();
|
|
35
78
|
const d1 = testPlug(hub, new SamplerDevice());
|
|
36
79
|
d1.setSample("Backslash", 1);
|
|
37
|
-
hub.poll(time
|
|
80
|
+
hub.poll(clock.time);
|
|
38
81
|
expect(hub.metaPort.actions[metaMode].revealOverlay.value)
|
|
39
82
|
.is(1);
|
|
40
83
|
}),
|
|
41
84
|
"two devices playing on separate ports": test(async () => {
|
|
42
|
-
const { hub,
|
|
85
|
+
const { hub, clock } = testSetupBravo();
|
|
43
86
|
const c1 = testPlug(hub, new SamplerDevice());
|
|
44
87
|
const c2 = testPlug(hub, new SamplerDevice());
|
|
45
88
|
c1.setSample("Space", 1);
|
|
46
89
|
c2.setSample("Space", 2);
|
|
47
|
-
const [p1, p2] = hub.poll(time
|
|
90
|
+
const [p1, p2] = hub.poll(clock.time);
|
|
48
91
|
expect(p1.actions.basic.jump.value).is(1);
|
|
49
92
|
expect(p2.actions.basic.jump.value).is(2);
|
|
50
93
|
}),
|
|
51
94
|
"device can shimmy": test(async () => {
|
|
52
|
-
const { hub,
|
|
95
|
+
const { hub, clock } = testSetupBravo();
|
|
53
96
|
const c1 = testPlug(hub, new SamplerDevice());
|
|
54
97
|
hub.shimmy(c1, 1);
|
|
55
98
|
c1.setSample("Space", 1);
|
|
56
|
-
const [p1, p2] = hub.poll(time
|
|
99
|
+
const [p1, p2] = hub.poll(clock.time);
|
|
57
100
|
expect(p1.actions.basic.jump.value).is(0);
|
|
58
101
|
expect(p2.actions.basic.jump.value).is(1);
|
|
59
102
|
}),
|
|
60
103
|
"two devices can share a port": test(async () => {
|
|
61
|
-
const { hub,
|
|
104
|
+
const { hub, clock } = testSetupBravo();
|
|
62
105
|
const c1 = testPlug(hub, new SamplerDevice());
|
|
63
106
|
const c2 = testPlug(hub, new SamplerDevice());
|
|
64
107
|
hub.shimmy(c2, -1);
|
|
65
108
|
expect(hub.portByDevice(c1)).is(hub.portByDevice(c2));
|
|
66
109
|
{
|
|
67
110
|
c1.setSample("Space", 1);
|
|
68
|
-
const [p1, p2] = hub.poll(time
|
|
111
|
+
const [p1, p2] = hub.poll(clock.time);
|
|
69
112
|
expect(p1.actions.basic.jump.value).is(1);
|
|
70
113
|
expect(p2.actions.basic.jump.value).is(0);
|
|
71
114
|
}
|
|
72
115
|
{
|
|
73
116
|
c2.setSample("Space", 1);
|
|
74
|
-
const [p1, p2] = hub.poll(time
|
|
117
|
+
const [p1, p2] = hub.poll(clock.time);
|
|
75
118
|
expect(p1.actions.basic.jump.value).is(1);
|
|
76
119
|
expect(p2.actions.basic.jump.value).is(0);
|
|
77
120
|
}
|
|
78
121
|
{
|
|
79
122
|
c1.setSample("Space", 1);
|
|
80
123
|
c2.setSample("Space", 2);
|
|
81
|
-
const [p1, p2] = hub.poll(time
|
|
124
|
+
const [p1, p2] = hub.poll(clock.time);
|
|
82
125
|
expect(p1.actions.basic.jump.value).is(2);
|
|
83
126
|
expect(p2.actions.basic.jump.value).is(0);
|
|
84
127
|
}
|
|
85
128
|
{
|
|
86
129
|
c1.setSample("Space", 2);
|
|
87
130
|
c2.setSample("Space", 1);
|
|
88
|
-
const [p1, p2] = hub.poll(time
|
|
131
|
+
const [p1, p2] = hub.poll(clock.time);
|
|
89
132
|
expect(p1.actions.basic.jump.value).is(2);
|
|
90
133
|
expect(p2.actions.basic.jump.value).is(0);
|
|
91
134
|
}
|
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":"AACA,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,eAAe,CAAA;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAA;AAE7E,eAAe,OAAO,CAAC,KAAK,CAAC;IAC5B,wBAAwB,EAAE,IAAI,CAAC,KAAK,IAAG,EAAE;QACxC,MAAM,EAAC,
|
|
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,15 +1,17 @@
|
|
|
1
1
|
import { Hub } from "../hub/hub.js";
|
|
2
2
|
import { Device } from "../devices/device.js";
|
|
3
3
|
import { Resolver } from "../bindings/resolver.js";
|
|
4
|
+
import { Code } from "../bindings/types.js";
|
|
4
5
|
import { SamplerDevice } from "../devices/infra/sampler.js";
|
|
5
|
-
export declare class
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
export declare class TestClock {
|
|
7
|
+
time: number;
|
|
8
|
+
set frame(frame: number);
|
|
8
9
|
}
|
|
9
10
|
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,22 +21,32 @@ 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;
|
|
32
|
+
};
|
|
33
|
+
}>;
|
|
34
|
+
clock: TestClock;
|
|
35
|
+
actions: import("../bindings/types.js").Actions<{
|
|
36
|
+
basic: {
|
|
37
|
+
jump: string;
|
|
38
|
+
shoot: string;
|
|
39
|
+
grenade: Code;
|
|
28
40
|
};
|
|
29
41
|
}>;
|
|
30
|
-
time: TestTime;
|
|
31
42
|
};
|
|
32
43
|
export declare function testSetupBravo(): {
|
|
33
44
|
hub: Hub<{
|
|
34
45
|
basic: {
|
|
35
46
|
jump: string;
|
|
36
47
|
shoot: string;
|
|
48
|
+
grenade: Code;
|
|
37
49
|
};
|
|
38
50
|
}, any>;
|
|
39
|
-
|
|
51
|
+
clock: TestClock;
|
|
40
52
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Hub } from "../hub/hub.js";
|
|
2
2
|
import { Port } from "../hub/port.js";
|
|
3
|
-
import { asBindings } from "../bindings/types.js";
|
|
4
3
|
import { Resolver } from "../bindings/resolver.js";
|
|
5
4
|
import { SampleMap } from "../bindings/sample-map.js";
|
|
5
|
+
import { asBindings } from "../bindings/types.js";
|
|
6
6
|
import { SamplerDevice } from "../devices/infra/sampler.js";
|
|
7
|
-
export class
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
export class TestClock {
|
|
8
|
+
time = 0;
|
|
9
|
+
set frame(frame) {
|
|
10
|
+
this.time = frame * (1000 / 60);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
export function testBindings() {
|
|
@@ -15,6 +15,7 @@ export function testBindings() {
|
|
|
15
15
|
basic: {
|
|
16
16
|
jump: "Space",
|
|
17
17
|
shoot: "pointer.button.left",
|
|
18
|
+
grenade: ["code", "KeyG", { timing: ["hold", 200] }]
|
|
18
19
|
},
|
|
19
20
|
});
|
|
20
21
|
}
|
|
@@ -23,21 +24,22 @@ export function testPlug(hub, device) {
|
|
|
23
24
|
return device;
|
|
24
25
|
}
|
|
25
26
|
export function testSetupAlpha() {
|
|
26
|
-
const
|
|
27
|
+
const clock = new TestClock();
|
|
27
28
|
const device = new SamplerDevice();
|
|
28
29
|
const resolver = new Resolver(testBindings());
|
|
29
30
|
const modes = new Set(Object.keys(resolver.bindings));
|
|
30
|
-
const
|
|
31
|
-
|
|
31
|
+
const actions = resolver.actions;
|
|
32
|
+
const resolve = () => resolver.resolve(clock.time, modes, new SampleMap(device.samples()));
|
|
33
|
+
return { device, resolver, resolve, clock, actions };
|
|
32
34
|
}
|
|
33
35
|
export function testSetupBravo() {
|
|
34
|
-
const
|
|
36
|
+
const clock = new TestClock();
|
|
35
37
|
const port = () => {
|
|
36
38
|
const port = new Port(testBindings());
|
|
37
39
|
port.modes.adds("basic");
|
|
38
40
|
return port;
|
|
39
41
|
};
|
|
40
42
|
const hub = new Hub([port(), port(), port(), port()]);
|
|
41
|
-
return { hub,
|
|
43
|
+
return { hub, clock };
|
|
42
44
|
}
|
|
43
45
|
//# sourceMappingURL=testing.js.map
|
|
@@ -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,
|
|
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,QAAQ,EAAC,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAC,UAAU,EAAO,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAA;AAEzD,MAAM,OAAO,SAAS;IACrB,IAAI,GAAG,CAAC,CAAA;IAER,IAAI,KAAK,CAAC,KAAa;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IAChC,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,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;IAC7B,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,QAAQ,CAAC,OAAO,CAAA;IAChC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CACrC,KAAK,CAAC,IAAI,EACV,KAAY,EACZ,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAC/B,CAAA;IACD,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,cAAc;IAC7B,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;IAC7B,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,KAAK,EAAC,CAAA;AACpB,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);
|