@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 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-5",
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.1"
32
+ "lit": "^3.3.2"
33
33
  },
34
34
  "dependencies": {
35
- "@benev/math": "^0.2.0-4",
35
+ "@benev/math": "^0.2.0",
36
36
  "@e280/kv": "^0.1.0",
37
- "@e280/sly": "^0.2.0-24",
38
- "@e280/strata": "^0.2.0-14",
39
- "@e280/stz": "^0.2.7"
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.2",
43
- "@e280/scute": "^0.1.0",
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.2"
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: 0,
9
+ holdStart: now,
10
10
  settings: defaultifyCodeSettings(settings),
11
11
  }
12
12
  }
@@ -1,5 +1,5 @@
1
1
 
2
- import {MapG, pub, obMap} from "@e280/stz"
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 MapG<number, CodeState>()
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(count: number, code: string, settings?: Partial<CodeSettings>) {
38
+ #resolveCode(path: string[], code: string, settings?: Partial<CodeSettings>) {
39
39
  const state = this.#codeStates.guarantee(
40
- count,
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 = (context: {count: number} = {count: 0}) => (atom: Atom): number => {
48
- const resolveAtom = this.#resolveAtom(context)
49
- if (typeof atom === "string") {
50
- return this.#resolveCode(context.count++, atom)
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(context.count++, code, settings)
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
  }
@@ -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,3 +1,3 @@
1
1
  import { Code, CodeState } from "../types.js";
2
2
  export declare const defaultHoldTime = 250;
3
- export declare function defaultCodeState([, , settings]: Code): CodeState;
3
+ export declare function defaultCodeState([, , settings]: Code, now: number): CodeState;
@@ -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: 0,
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;IAClD,OAAO;QACN,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,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
+ {"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 { MapG, pub, obMap } from "@e280/stz";
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 MapG();
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(count, code, settings) {
35
- const state = this.#codeStates.guarantee(count, () => defaultCodeState(["code", code, settings]));
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 = (context = { count: 0 }) => (atom) => {
40
- const resolveAtom = this.#resolveAtom(context);
41
- if (typeof atom === "string") {
42
- return this.#resolveCode(context.count++, atom);
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(context.count++, code, settings);
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,IAAI,EAAE,GAAG,EAAE,KAAK,EAAC,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAA;AAGpD,MAAM,OAAO,QAAQ;IAQD;IAPV,OAAO,CAAY;IAC5B,MAAM,GAAG,IAAI,GAAG,EAAW,CAAA;IAC3B,UAAU,GAAG,IAAI,SAAS,EAAE,CAAA;IAC5B,IAAI,GAAG,CAAC,CAAA;IACR,WAAW,GAAG,IAAI,IAAI,EAAqB,CAAA;IAC3C,OAAO,GAAG,GAAG,EAAE,CAAA;IAEf,YAAmB,QAAW;QAAX,aAAQ,GAAR,QAAQ,CAAG;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACvE,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;YAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC3B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC;oBAC3B,CAAC,CAAC,CAAC,CAAA;YACL,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACd,CAAC,CAAC,CAAe,CAAA;IAClB,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,KAAmB,EAAE,SAAoB;QAC7D,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,OAAO,IAAI,CAAC,OAAO,CAAA;IACpB,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgC;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACvC,KAAK,EACL,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAChD,CAAA;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5C,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC;IAED,YAAY,GAAG,CAAC,UAA2B,EAAC,KAAK,EAAE,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,IAAU,EAAU,EAAE;QAChF,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;;YACI,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,KAAK,MAAM,CAAC,CAAC,CAAC;oBACb,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAA;oBAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;gBAC1D,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACZ,MAAM,CAAC,EAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAA;oBACxB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;oBACrC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;gBACpB,CAAC;gBACD,KAAK,IAAI,CAAC,CAAC,CAAC;oBACX,MAAM,CAAC,EAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAA;oBACxB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;oBACrC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;gBACpB,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACZ,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;oBACxB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;oBAClC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC3B,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACb,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,IAAI,CAAA;oBAC/B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC9B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;wBACtB,CAAC,CAAC,CAAC,CAAA;gBACL,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACb,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,CAAA;oBACnC,MAAM,KAAK,GAAG,CAAC,CAAU,EAAE,GAAG,KAAa,EAAQ,EAAE,CAAC,CAAC;wBACtD,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;wBAClB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;oBAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK;4BACjD,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC;4BAC7D,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC;4BACpD,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC;4BACvD,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC;yBAC1D,CAAC,CAAC,CAAA;oBACH,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;wBACjB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;wBACtB,CAAC,CAAC,CAAC,CAAA;gBACL,CAAC;YACF,CAAC;IACF,CAAC,CAAA;CACD"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../s/core/bindings/resolver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Science } from "@e280/science";
2
2
  declare const _default: {
3
3
  "sample to action value": Science.Test;
4
+ "hold timing": Science.Test;
4
5
  hub: {
5
6
  "device inputs work": Science.Test;
6
7
  "reveal overlay works": Science.Test;
@@ -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();
@@ -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: SetG<Device>;
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][];
@@ -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: SetG<import("../index.js").Device>;
7
- readonly modes: SetG<keyof B>;
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;
@@ -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
  }
@@ -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,EAAC,MAAM,sBAAsB,CAAA;AAC/C,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;SAC5B;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"}
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: MapG<string, Profile>;
14
+ profiles: import("@e280/stz").GMap<string, Profile>;
16
15
  portProfiles: (string | null)[];
17
16
  metaBindings: MetaBindings | null;
18
17
  constructor(data?: CatalogData);
@@ -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 */
@@ -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);