@edv4h/usketch-plugin-character 0.3.1 → 0.5.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.
Files changed (53) hide show
  1. package/README.md +67 -11
  2. package/dist/character-input.d.ts +11 -3
  3. package/dist/character-input.d.ts.map +1 -1
  4. package/dist/character-input.js +63 -18
  5. package/dist/character-input.js.map +1 -1
  6. package/dist/character-key-choices.d.ts +14 -0
  7. package/dist/character-key-choices.d.ts.map +1 -0
  8. package/dist/character-key-choices.js +23 -0
  9. package/dist/character-key-choices.js.map +1 -0
  10. package/dist/character-layer.d.ts +1 -1
  11. package/dist/character-layer.d.ts.map +1 -1
  12. package/dist/character-layer.js +45 -14
  13. package/dist/character-layer.js.map +1 -1
  14. package/dist/character-physics.d.ts +156 -2
  15. package/dist/character-physics.d.ts.map +1 -1
  16. package/dist/character-physics.js +270 -22
  17. package/dist/character-physics.js.map +1 -1
  18. package/dist/character-runtime.d.ts +8 -1
  19. package/dist/character-runtime.d.ts.map +1 -1
  20. package/dist/character-runtime.js +90 -8
  21. package/dist/character-runtime.js.map +1 -1
  22. package/dist/character-service.d.ts +23 -3
  23. package/dist/character-service.d.ts.map +1 -1
  24. package/dist/character-service.js +7 -0
  25. package/dist/character-service.js.map +1 -1
  26. package/dist/character-store.d.ts +34 -1
  27. package/dist/character-store.d.ts.map +1 -1
  28. package/dist/character-store.js +86 -4
  29. package/dist/character-store.js.map +1 -1
  30. package/dist/character-sync.d.ts +11 -1
  31. package/dist/character-sync.d.ts.map +1 -1
  32. package/dist/character-sync.js +23 -1
  33. package/dist/character-sync.js.map +1 -1
  34. package/dist/character-types.d.ts +31 -2
  35. package/dist/character-types.d.ts.map +1 -1
  36. package/dist/character-types.js +2 -1
  37. package/dist/character-types.js.map +1 -1
  38. package/dist/character-virtual-input.d.ts +36 -0
  39. package/dist/character-virtual-input.d.ts.map +1 -0
  40. package/dist/character-virtual-input.js +48 -0
  41. package/dist/character-virtual-input.js.map +1 -0
  42. package/dist/index.d.ts +4 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +4 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/plugin.d.ts +13 -1
  47. package/dist/plugin.d.ts.map +1 -1
  48. package/dist/plugin.js +2 -0
  49. package/dist/plugin.js.map +1 -1
  50. package/dist/register-character-hud.d.ts.map +1 -1
  51. package/dist/register-character-hud.js +88 -1
  52. package/dist/register-character-hud.js.map +1 -1
  53. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"character-sync.d.ts","sourceRoot":"","sources":["../src/character-sync.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjF,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC/C,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAMD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,IAAI,CAyB7E;AAED,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,WAAW,aAAa;IAC7B,sEAAsE;IACtE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,0DAA0D;IAC1D,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE,cAAc,EACrB,gBAAgB,EAAE,MAAM,IAAI,EAC5B,GAAG,GAAE,MAAM,MAAyB,GAClC,aAAa,CAwDf;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CA2B3D"}
1
+ {"version":3,"file":"character-sync.d.ts","sourceRoot":"","sources":["../src/character-sync.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEjF,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC/C,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qFAAqF;IACrF,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,mBAAmB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AASD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,IAAI,CA8B7E;AAED,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,WAAW,aAAa;IAC7B,sEAAsE;IACtE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,0DAA0D;IAC1D,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,kBAAkB,EAC7B,KAAK,EAAE,cAAc,EACrB,gBAAgB,EAAE,MAAM,IAAI,EAC5B,GAAG,GAAE,MAAM,MAAyB,GAClC,aAAa,CA8Df;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAqC3D"}
@@ -4,7 +4,10 @@
4
4
  // disconnects — which is exactly the "coexisting live characters" semantics.
5
5
  // Typed structurally so the plugin doesn't depend on @edv4h/usketch-sync.
6
6
  import { wrapDeg } from "@edv4h/usketch-shared";
7
+ import { hoverGaugeOf } from "./character-store.js";
7
8
  export const AWARENESS_FIELD = "character";
9
+ /** Steps the hover gauge is published in, so a refilling gauge doesn't publish every frame. */
10
+ const WIRE_GAUGE_STEP = 0.05;
8
11
  /** The largest slip accepted from the wire, degrees. */
9
12
  const MAX_WIRE_SLIP = 90;
10
13
  const clamp = (v, min, max) => Math.min(max, Math.max(min, v));
@@ -31,6 +34,11 @@ export function parseWireState(v) {
31
34
  steering: clamp(num("steering") ?? 0, -1, 1),
32
35
  slip: clamp(num("slip") ?? 0, -MAX_WIRE_SLIP, MAX_WIRE_SLIP),
33
36
  drifting: o.drifting === true,
37
+ z: num("z"),
38
+ airborne: o.airborne === true,
39
+ vz: num("vz") ?? 0,
40
+ hovering: o.hovering === true,
41
+ hoverGauge: ((g) => (g === null ? null : clamp(g, 0, 1)))(num("hoverGauge")),
34
42
  appearance,
35
43
  name: typeof o.name === "string" ? o.name : undefined,
36
44
  };
@@ -46,6 +54,7 @@ export function createCharacterSync(awareness, store, onTargetsChanged, now = ()
46
54
  const t = now();
47
55
  if (!force && t - lastSent < BROADCAST_INTERVAL_MS)
48
56
  return;
57
+ const gauge = hoverGaugeOf(s);
49
58
  const wire = s.enabled
50
59
  ? {
51
60
  x: s.pose.x,
@@ -57,6 +66,11 @@ export function createCharacterSync(awareness, store, onTargetsChanged, now = ()
57
66
  // Half-degree steps: a settling slip doesn't publish every frame forever.
58
67
  slip: Math.round(s.pose.slip * 2) / 2,
59
68
  drifting: s.pose.drift !== 0,
69
+ z: s.pose.z,
70
+ airborne: s.pose.airborne,
71
+ vz: s.pose.vz,
72
+ hovering: s.pose.hovering,
73
+ hoverGauge: gauge === null ? null : Math.round(gauge / WIRE_GAUGE_STEP) * WIRE_GAUGE_STEP,
60
74
  appearance: s.appearance,
61
75
  name: s.name,
62
76
  }
@@ -111,7 +125,14 @@ export function easeRemotes(display, targets, alpha) {
111
125
  const dy = t.y - d.y;
112
126
  const dh = wrapDeg(t.heading - d.heading);
113
127
  const ds = t.slip - d.slip;
114
- if (Math.abs(dx) < 0.05 && Math.abs(dy) < 0.05 && Math.abs(dh) < 0.05 && Math.abs(ds) < 0.05) {
128
+ // Height eases only between two known values (an older client sends none).
129
+ const known = typeof t.z === "number" && typeof d.z === "number";
130
+ const dz = known ? t.z - d.z : 0;
131
+ if (Math.abs(dx) < 0.05 &&
132
+ Math.abs(dy) < 0.05 &&
133
+ Math.abs(dh) < 0.05 &&
134
+ Math.abs(ds) < 0.05 &&
135
+ Math.abs(dz) < 0.05) {
115
136
  next.set(id, t);
116
137
  continue;
117
138
  }
@@ -122,6 +143,7 @@ export function easeRemotes(display, targets, alpha) {
122
143
  y: d.y + dy * alpha,
123
144
  heading: wrapDeg(d.heading + dh * alpha),
124
145
  slip: d.slip + ds * alpha,
146
+ z: known ? d.z + dz * alpha : t.z,
125
147
  });
126
148
  }
127
149
  return { next, settling };
@@ -1 +1 @@
1
- {"version":3,"file":"character-sync.js","sourceRoot":"","sources":["../src/character-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"character-sync.js","sourceRoot":"","sources":["../src/character-sync.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8EAA8E;AAC9E,mFAAmF;AACnF,6EAA6E;AAC7E,0EAA0E;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAuB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAYzE,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AA6B3C,+FAA+F;AAC/F,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,wDAAwD;AACxD,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvF,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,CAAU;IACxC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CACzB,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,UAAU,GACf,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/E,CAAC,CAAE,CAAC,CAAC,UAAkC;QACvC,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACN,CAAC;QACD,CAAC;QACD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QACzB,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI;QACzB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;QAC5D,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;QAC7B,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;QACX,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;QAC7B,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;QAC7B,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5E,UAAU;QACV,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAUxC,MAAM,UAAU,mBAAmB,CAClC,SAA6B,EAC7B,KAAqB,EACrB,gBAA4B,EAC5B,GAAG,GAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAEpC,IAAI,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACxC,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,OAAO,GAAyC,IAAI,GAAG,EAAE,CAAC;IAE9D,MAAM,OAAO,GAAG,CAAC,KAAK,GAAG,KAAK,EAAQ,EAAE;QACvC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,QAAQ,GAAG,qBAAqB;YAAE,OAAO;QAC3D,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAA8B,CAAC,CAAC,OAAO;YAChD,CAAC,CAAC;gBACA,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACX,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACX,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;gBACvB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;gBACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACzB,0EAA0E;gBAC1E,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;gBACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;gBAC5B,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACX,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACzB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;gBACb,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACzB,UAAU,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,eAAe;gBACzF,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,IAAI,EAAE,CAAC,CAAC,IAAI;aACZ;YACF,CAAC,CAAC,IAAI,CAAC;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,WAAW;YAAE,OAAO,CAAC,6BAA6B;QAClE,WAAW,GAAG,OAAO,CAAC;QACtB,QAAQ,GAAG,CAAC,CAAC;QACb,SAAS,CAAC,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAS,EAAE;QACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;QAChD,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC;YACpD,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;gBAAE,SAAS;YAC9C,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;QACf,gBAAgB,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC;IAEP,OAAO;QACN,OAAO;QACP,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;QACtB,OAAO;YACN,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9B,+DAA+D;YAC/D,SAAS,CAAC,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;KACD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAC1B,OAA6C,EAC7C,OAA6C,EAC7C,KAAa;IAEb,MAAM,IAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;IAChD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAChB,SAAS;QACV,CAAC;QACD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAC3B,2EAA2E;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;QACjE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAY,GAAI,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IACC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI;YACnB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI;YACnB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI;YACnB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI;YACnB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAClB,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAChB,SAAS;QACV,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACZ,GAAG,CAAC;YACJ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;YACnB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;YACnB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC;YACxC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK;YACzB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAY,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7C,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC"}
@@ -30,8 +30,23 @@ export interface CharacterRenderProps {
30
30
  appearance: CharacterAppearance;
31
31
  /** The owner's display name, if any. */
32
32
  name?: string;
33
- /** Ground height the character stands on, world units (0 = the flat board). */
33
+ /** Ground height under the character, world units (0 = the flat board). Where the shadow goes. */
34
34
  elevation: number;
35
+ /** Height of the feet, world units (absolute like `elevation`; above it while in the air). */
36
+ z: number;
37
+ /** How high the feet are above the ground under them (`z - elevation`, 0 = standing). */
38
+ altitude: number;
39
+ /** Whether the character is in the air (jumping or falling). */
40
+ airborne: boolean;
41
+ /** Vertical speed, world units / s (positive = rising), e.g. for a rise / fall pose. */
42
+ verticalSpeed: number;
43
+ /** Hovering (the jump key held in a fall), e.g. for flapping or a glow at the feet. */
44
+ hovering: boolean;
45
+ /**
46
+ * Hover gauge, 0 (empty) … 1 (full) — drains while hovering, refills on the ground — or
47
+ * `null` while hovering is off (also from clients that don't send it).
48
+ */
49
+ hoverGauge: number | null;
35
50
  }
36
51
  /**
37
52
  * Draws one character. The plugin places the returned node centered on the
@@ -49,6 +64,15 @@ export interface RemoteCharacter {
49
64
  steering: number;
50
65
  slip: number;
51
66
  drifting: boolean;
67
+ /** Feet height (absolute), or `null` from a client that doesn't send it (= on the ground). */
68
+ z: number | null;
69
+ airborne: boolean;
70
+ /** Vertical speed as last sent (0 from older clients). */
71
+ vz: number;
72
+ /** Hovering as last sent (false from older clients). */
73
+ hovering: boolean;
74
+ /** Hover gauge 0 … 1, or `null` with hovering off / from older clients. */
75
+ hoverGauge: number | null;
52
76
  appearance: CharacterAppearance;
53
77
  name?: string;
54
78
  }
@@ -58,8 +82,13 @@ export interface CharacterKeys {
58
82
  down: string[];
59
83
  left: string[];
60
84
  right: string[];
61
- /** Vehicle drift key. Only captured while the vehicle scheme has drift on. */
85
+ /** Vehicle drift key (default Shift). Only captured while the vehicle scheme has drift on. */
62
86
  drift?: string[];
87
+ /**
88
+ * Jump key (default Space). Only captured while jumping is on. Where it shares a key
89
+ * with an active drift, the drift wins.
90
+ */
91
+ jump?: string[];
63
92
  }
64
93
  export declare const DEFAULT_KEYS: CharacterKeys;
65
94
  //# sourceMappingURL=character-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"character-types.d.ts","sourceRoot":"","sources":["../src/character-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,yFAAyF;AACzF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1D,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACpC,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAC;IAChB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,UAAU,EAAE,mBAAmB,CAAC;IAChC,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAAC;AAE3E,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,mBAAmB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,aAM1B,CAAC"}
1
+ {"version":3,"file":"character-types.d.ts","sourceRoot":"","sources":["../src/character-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,yFAAyF;AACzF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1D,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACpC,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAC;IAChB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,UAAU,EAAE,mBAAmB,CAAC;IAChC,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,SAAS,EAAE,MAAM,CAAC;IAClB,8FAA8F;IAC9F,CAAC,EAAE,MAAM,CAAC;IACV,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,EAAE,OAAO,CAAC;IAClB,wFAAwF;IACxF,aAAa,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAAC;AAE3E,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,8FAA8F;IAC9F,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,mBAAmB,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,eAAO,MAAM,YAAY,EAAE,aAO1B,CAAC"}
@@ -3,6 +3,7 @@ export const DEFAULT_KEYS = {
3
3
  down: ["KeyS"],
4
4
  left: ["KeyA"],
5
5
  right: ["KeyD"],
6
- drift: ["Space"],
6
+ drift: ["ShiftLeft", "ShiftRight"],
7
+ jump: ["Space"],
7
8
  };
8
9
  //# sourceMappingURL=character-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"character-types.js","sourceRoot":"","sources":["../src/character-types.ts"],"names":[],"mappings":"AAuEA,MAAM,CAAC,MAAM,YAAY,GAAkB;IAC1C,EAAE,EAAE,CAAC,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,OAAO,CAAC;CAChB,CAAC"}
1
+ {"version":3,"file":"character-types.js","sourceRoot":"","sources":["../src/character-types.ts"],"names":[],"mappings":"AAoGA,MAAM,CAAC,MAAM,YAAY,GAAkB;IAC1C,EAAE,EAAE,CAAC,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;IAClC,IAAI,EAAE,CAAC,OAAO,CAAC;CACf,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { type MoveInput } from "./character-physics.js";
2
+ /** Analog input from a host control. Missing fields count as released. */
3
+ export interface VirtualInput {
4
+ /** Forward / back, -1 (full reverse / screen down) … 1 (full throttle / screen up). */
5
+ throttle: number;
6
+ /** Left / right, -1 … 1. */
7
+ steer: number;
8
+ /** Vehicle: the drift button (only acts when drift is enabled). */
9
+ drift: boolean;
10
+ /**
11
+ * The jump button, held (only acts while jumping is on). Holding it works like holding
12
+ * the jump key: a release while rising cuts the jump short, and holding it in a fall
13
+ * hovers. Omitted = released.
14
+ */
15
+ jump?: boolean;
16
+ }
17
+ /** Clamp a host value into a `VirtualInput`; `null` (or all released) = no input. */
18
+ export declare function normalizeVirtualInput(input: Partial<VirtualInput> | null): VirtualInput | null;
19
+ /** Whether the virtual control is being touched (moves the stick or holds a button). */
20
+ export declare function isVirtualInputActive(v: VirtualInput | null): boolean;
21
+ /**
22
+ * Buttons that went down between `prev` and `next` — the press edges a step needs
23
+ * (`jumpPressed` starts a jump, `driftPressed` a drift hop), since a quick tap can be
24
+ * pressed and released between two frames.
25
+ */
26
+ export declare function virtualPresses(prev: VirtualInput | null, next: VirtualInput | null): {
27
+ jump: boolean;
28
+ drift: boolean;
29
+ };
30
+ /**
31
+ * The keys plus the virtual control: their axes add up (capped at ±1) and drift / jump
32
+ * are held if either holds them. Without virtual input the key input passes through as
33
+ * is. Press edges are not derived here (see `virtualPresses`).
34
+ */
35
+ export declare function combineInput(keys: MoveInput, virtual: VirtualInput | null): MoveInput;
36
+ //# sourceMappingURL=character-virtual-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character-virtual-input.d.ts","sourceRoot":"","sources":["../src/character-virtual-input.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE9F,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC5B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,CAS9F;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,IAAI,EAAE,YAAY,GAAG,IAAI,EACzB,IAAI,EAAE,YAAY,GAAG,IAAI,GACvB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAKnC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CASrF"}
@@ -0,0 +1,48 @@
1
+ // Non-keyboard movement input (an on-screen touch stick, a gamepad …) that a host
2
+ // feeds through `CharacterApi.setVirtualInput`. It is analog and is combined with the
3
+ // held keys each frame, so a keyboard and a touch stick can drive at the same time.
4
+ import { clampUnit, inputSteer, inputThrottle } from "./character-physics.js";
5
+ /** Clamp a host value into a `VirtualInput`; `null` (or all released) = no input. */
6
+ export function normalizeVirtualInput(input) {
7
+ if (!input)
8
+ return null;
9
+ const v = {
10
+ throttle: clampUnit(input.throttle),
11
+ steer: clampUnit(input.steer),
12
+ drift: input.drift === true,
13
+ jump: input.jump === true,
14
+ };
15
+ return isVirtualInputActive(v) ? v : null;
16
+ }
17
+ /** Whether the virtual control is being touched (moves the stick or holds a button). */
18
+ export function isVirtualInputActive(v) {
19
+ return v !== null && (v.throttle !== 0 || v.steer !== 0 || v.drift || v.jump === true);
20
+ }
21
+ /**
22
+ * Buttons that went down between `prev` and `next` — the press edges a step needs
23
+ * (`jumpPressed` starts a jump, `driftPressed` a drift hop), since a quick tap can be
24
+ * pressed and released between two frames.
25
+ */
26
+ export function virtualPresses(prev, next) {
27
+ return {
28
+ jump: next?.jump === true && prev?.jump !== true,
29
+ drift: next?.drift === true && prev?.drift !== true,
30
+ };
31
+ }
32
+ /**
33
+ * The keys plus the virtual control: their axes add up (capped at ±1) and drift / jump
34
+ * are held if either holds them. Without virtual input the key input passes through as
35
+ * is. Press edges are not derived here (see `virtualPresses`).
36
+ */
37
+ export function combineInput(keys, virtual) {
38
+ if (!virtual)
39
+ return keys;
40
+ return {
41
+ ...keys,
42
+ throttle: clampUnit(inputThrottle(keys) + virtual.throttle),
43
+ steer: clampUnit(inputSteer(keys) + virtual.steer),
44
+ drift: keys.drift === true || virtual.drift,
45
+ jump: keys.jump === true || virtual.jump === true,
46
+ };
47
+ }
48
+ //# sourceMappingURL=character-virtual-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character-virtual-input.js","sourceRoot":"","sources":["../src/character-virtual-input.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,sFAAsF;AACtF,oFAAoF;AACpF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAkB,MAAM,wBAAwB,CAAC;AAkB9F,qFAAqF;AACrF,MAAM,UAAU,qBAAqB,CAAC,KAAmC;IACxE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,GAAiB;QACvB,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;QAC3B,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI;KACzB,CAAC;IACF,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAAC,CAAsB;IAC1D,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACxF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC7B,IAAyB,EACzB,IAAyB;IAEzB,OAAO;QACN,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,KAAK,IAAI;QAChD,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI;KACnD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAe,EAAE,OAA4B;IACzE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO;QACN,GAAG,IAAI;QACP,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3D,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAClD,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK;QAC3C,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;KACjD,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  export { anchorPx, type CameraFocus, type CameraMode, easeFocus, followViewport, smoothingAlpha, targetRotation, } from "./character-camera.js";
2
- export { type CharacterPose, type ControlScheme, DEFAULT_DRIFT, DEFAULT_MOTION, type DriftParams, headingVector, type MotionParams, type MoveInput, ORIGIN_POSE, stepCharacter, turnToward, vectorHeading, } from "./character-physics.js";
2
+ export { KEY_CHOICES, type KeyChoice, keyChoiceOf, withKeyChoice, } from "./character-key-choices.js";
3
+ export { airJumpSpeed, type CharacterPose, type ControlScheme, DEFAULT_DRIFT, DEFAULT_HOVER, DEFAULT_JUMP, DEFAULT_MOTION, type DriftParams, drainHoverGauge, type HoverParams, headingVector, IDLE_JUMP, inputSteer, inputThrottle, type JumpParams, type JumpTimers, jumpArc, type MotionParams, type MoveInput, ORIGIN_POSE, rechargeHoverGauge, stepCharacter, stepVertical, turnToward, vectorHeading, } from "./character-physics.js";
3
4
  export { CHARACTER_LAYER_ID, CHARACTER_VIEWPORT_PRIORITY } from "./character-runtime.js";
4
5
  export { type CharacterApi, characterService, getCharacterApi, } from "./character-service.js";
6
+ export { effectiveJump, hoverGaugeOf, type JumpInit, MAX_AIR_JUMPS, sanitizeHover, sanitizeJump, } from "./character-store.js";
5
7
  export { AWARENESS_FIELD, type CharacterAwareness, type CharacterWireState, parseWireState, } from "./character-sync.js";
6
8
  export { type CharacterAppearance, type CharacterKeys, type CharacterRenderer, type CharacterRenderProps, DEFAULT_KEYS, type RemoteCharacter, } from "./character-types.js";
9
+ export { combineInput, isVirtualInputActive, normalizeVirtualInput, type VirtualInput, virtualPresses, } from "./character-virtual-input.js";
7
10
  export { type CharacterPluginOptions, createCharacterPlugin } from "./plugin.js";
8
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,aAAa,EACb,cAAc,EACd,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EACN,KAAK,YAAY,EACjB,gBAAgB,EAChB,eAAe,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,eAAe,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,WAAW,EACX,KAAK,SAAS,EACd,WAAW,EACX,aAAa,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,KAAK,WAAW,EAChB,eAAe,EACf,KAAK,WAAW,EAChB,aAAa,EACb,SAAS,EACT,UAAU,EACV,aAAa,EACb,KAAK,UAAU,EACf,KAAK,UAAU,EACf,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EACN,KAAK,YAAY,EACjB,gBAAgB,EAChB,eAAe,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,aAAa,EACb,YAAY,EACZ,KAAK,QAAQ,EACb,aAAa,EACb,aAAa,EACb,YAAY,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,eAAe,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,YAAY,EACjB,cAAc,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,11 @@
1
1
  export { anchorPx, easeFocus, followViewport, smoothingAlpha, targetRotation, } from "./character-camera.js";
2
- export { DEFAULT_DRIFT, DEFAULT_MOTION, headingVector, ORIGIN_POSE, stepCharacter, turnToward, vectorHeading, } from "./character-physics.js";
2
+ export { KEY_CHOICES, keyChoiceOf, withKeyChoice, } from "./character-key-choices.js";
3
+ export { airJumpSpeed, DEFAULT_DRIFT, DEFAULT_HOVER, DEFAULT_JUMP, DEFAULT_MOTION, drainHoverGauge, headingVector, IDLE_JUMP, inputSteer, inputThrottle, jumpArc, ORIGIN_POSE, rechargeHoverGauge, stepCharacter, stepVertical, turnToward, vectorHeading, } from "./character-physics.js";
3
4
  export { CHARACTER_LAYER_ID, CHARACTER_VIEWPORT_PRIORITY } from "./character-runtime.js";
4
5
  export { characterService, getCharacterApi, } from "./character-service.js";
6
+ export { effectiveJump, hoverGaugeOf, MAX_AIR_JUMPS, sanitizeHover, sanitizeJump, } from "./character-store.js";
5
7
  export { AWARENESS_FIELD, parseWireState, } from "./character-sync.js";
6
8
  export { DEFAULT_KEYS, } from "./character-types.js";
9
+ export { combineInput, isVirtualInputActive, normalizeVirtualInput, virtualPresses, } from "./character-virtual-input.js";
7
10
  export { createCharacterPlugin } from "./plugin.js";
8
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EAGR,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGN,aAAa,EACb,cAAc,EAEd,aAAa,EAGb,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAEN,gBAAgB,EAChB,eAAe,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,eAAe,EAGf,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAKN,YAAY,GAEZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA+B,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EAGR,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,WAAW,EAEX,WAAW,EACX,aAAa,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,YAAY,EAGZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EAEd,eAAe,EAEf,aAAa,EACb,SAAS,EACT,UAAU,EACV,aAAa,EAGb,OAAO,EAGP,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAEN,gBAAgB,EAChB,eAAe,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,aAAa,EACb,YAAY,EAEZ,aAAa,EACb,aAAa,EACb,YAAY,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,eAAe,EAGf,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAKN,YAAY,GAEZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EAErB,cAAc,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAA+B,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -1,11 +1,17 @@
1
1
  import type { UsketchPlugin } from "@edv4h/usketch-shared";
2
2
  import type { CameraMode } from "./character-camera.js";
3
3
  import type { ControlScheme, DriftParams, MotionParams } from "./character-physics.js";
4
+ import { type JumpInit } from "./character-store.js";
4
5
  import type { CharacterAwareness } from "./character-sync.js";
5
6
  import { type CharacterAppearance, type CharacterKeys, type CharacterRenderer } from "./character-types.js";
6
7
  export interface CharacterPluginOptions {
7
8
  /** Draws a character (self and others). Omitted = headless (nothing drawn). */
8
9
  renderCharacter?: CharacterRenderer;
10
+ /**
11
+ * Draws a character's shadow, placed on the ground under it (the body stands at its
12
+ * feet height, so a jump lifts it off the shadow in 3D). Omitted = no shadow.
13
+ */
14
+ renderShadow?: CharacterRenderer;
9
15
  /** Broadcast look data for your character (e.g. `{ color: "#e44" }`). */
10
16
  appearance?: CharacterAppearance;
11
17
  /** Multiplayer: share characters through this provider's awareness. Omitted = solo. */
@@ -14,7 +20,7 @@ export interface CharacterPluginOptions {
14
20
  };
15
21
  /** Display name sent with your character. */
16
22
  userName?: string;
17
- /** Movement keys as `KeyboardEvent.code` lists (default WASD, drift Space). */
23
+ /** Keys as `KeyboardEvent.code` lists (default WASD, drift and jump Space). */
18
24
  keys?: Partial<CharacterKeys>;
19
25
  /** Start with the character on (default `false`). */
20
26
  enabledInitially?: boolean;
@@ -29,6 +35,12 @@ export interface CharacterPluginOptions {
29
35
  * tuning, an object = overrides. Default off.
30
36
  */
31
37
  drift?: boolean | Partial<DriftParams>;
38
+ /**
39
+ * Press the jump key (Space) to jump: hop over cliffs taller than `motion.maxStep`.
40
+ * `true` = default tuning, an object = overrides (`airJumps` for multi-jumps, `hover:
41
+ * true` / a partial to hover while the key is held in a fall). Default off.
42
+ */
43
+ jump?: boolean | JumpInit;
32
44
  /** Where the character sits on screen, as canvas fractions (default center). */
33
45
  screenAnchor?: {
34
46
  x?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEtB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,sBAAsB;IACtC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,yEAAyE;IACzE,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,uFAAuF;IACvF,UAAU,CAAC,EAAE;QAAE,SAAS,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAC/C,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,gFAAgF;IAChF,YAAY,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,aAAa,CAiCzF"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGvF,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEtB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,sBAAsB;IACtC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,yEAAyE;IACzE,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,uFAAuF;IACvF,UAAU,CAAC,EAAE;QAAE,SAAS,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAC/C,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,gFAAgF;IAChF,YAAY,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,aAAa,CAmCzF"}
package/dist/plugin.js CHANGED
@@ -14,11 +14,13 @@ export function createCharacterPlugin(options = {}) {
14
14
  controlScheme: options.controlScheme,
15
15
  motion: options.motion,
16
16
  drift: options.drift,
17
+ jump: options.jump,
17
18
  anchor: options.screenAnchor,
18
19
  followSmoothing: options.followSmoothing,
19
20
  appearance: options.appearance,
20
21
  name: options.userName,
21
22
  renderer: options.renderCharacter,
23
+ shadowRenderer: options.renderShadow,
22
24
  });
23
25
  const runtime = setupCharacterRuntime(ctx, store, {
24
26
  keys: { ...DEFAULT_KEYS, ...options.keys },
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAIN,YAAY,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAgCnE,MAAM,UAAU,qBAAqB,CAAC,OAAO,GAA2B,EAAE;IACzE,OAAO;QACN,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,QAAQ;QACd,KAAK,CAAC,GAAkB;YACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC;gBAClC,OAAO,EAAE,OAAO,CAAC,gBAAgB;gBACjC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,YAAY;gBAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,IAAI,EAAE,OAAO,CAAC,QAAQ;gBACtB,QAAQ,EAAE,OAAO,CAAC,eAAe;aACjC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE;gBACjD,IAAI,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE;gBAC1C,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS;aACxC,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/C,mEAAmE;YACnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAE9D,OAAO,GAAG,EAAE;gBACX,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAiB,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EAIN,YAAY,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AA2CnE,MAAM,UAAU,qBAAqB,CAAC,OAAO,GAA2B,EAAE;IACzE,OAAO;QACN,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,QAAQ;QACd,KAAK,CAAC,GAAkB;YACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC;gBAClC,OAAO,EAAE,OAAO,CAAC,gBAAgB;gBACjC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,YAAY;gBAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,IAAI,EAAE,OAAO,CAAC,QAAQ;gBACtB,QAAQ,EAAE,OAAO,CAAC,eAAe;gBACjC,cAAc,EAAE,OAAO,CAAC,YAAY;aACpC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE;gBACjD,IAAI,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE;gBAC1C,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS;aACxC,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/C,mEAAmE;YACnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAE9D,OAAO,GAAG,EAAE;gBACX,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-character-hud.d.ts","sourceRoot":"","sources":["../src/register-character-hud.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,IAAI,CA+HtF"}
1
+ {"version":3,"file":"register-character-hud.d.ts","sourceRoot":"","sources":["../src/register-character-hud.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQ3D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,IAAI,CAgNtF"}
@@ -1,6 +1,9 @@
1
+ import { KEY_CHOICES, keyChoiceOf, withKeyChoice } from "./character-key-choices.js";
2
+ import { DEFAULT_HOVER, DEFAULT_JUMP } from "./character-physics.js";
1
3
  const CAMERA_MODES = ["fixed", "rotate", "free"];
2
4
  const SCHEMES = ["directional", "vehicle"];
3
5
  const truthy = (v) => v === true || v === "true";
6
+ const KEY_OPTIONS = KEY_CHOICES.map((c) => ({ value: c.value, label: c.label }));
4
7
  export function registerCharacterHud(ctx, api) {
5
8
  const offSettings = ctx.hud.registerSettings({
6
9
  id: "usketch-plugin-character:settings",
@@ -27,7 +30,30 @@ export function registerCharacterHud(ctx, api) {
27
30
  { value: "vehicle", label: "車(前進+旋回)" },
28
31
  ],
29
32
  },
30
- { name: "drift", label: "ドリフト(車・Space)", type: "boolean" },
33
+ { name: "drift", label: "ドリフト(車)", type: "boolean" },
34
+ { name: "driftKey", label: "ドリフトのキー", type: "enum", options: KEY_OPTIONS },
35
+ { name: "driftHop", label: "ドリフトでホップ", type: "boolean" },
36
+ { name: "jump", label: "ジャンプ", type: "boolean" },
37
+ { name: "jumpKey", label: "ジャンプのキー", type: "enum", options: KEY_OPTIONS },
38
+ { name: "jumpHeight", label: "ジャンプの高さ", type: "number", min: 8, max: 200, step: 4 },
39
+ { name: "airJumps", label: "空中ジャンプ回数", type: "number", min: 0, max: 5, step: 1 },
40
+ { name: "hover", label: "ホバー", type: "boolean" },
41
+ {
42
+ name: "hoverDuration",
43
+ label: "ホバー時間(秒)",
44
+ type: "number",
45
+ min: 0.2,
46
+ max: 5,
47
+ step: 0.1,
48
+ },
49
+ {
50
+ name: "hoverThrust",
51
+ label: "ホバーの推力(重力比)",
52
+ type: "number",
53
+ min: 0,
54
+ max: 3,
55
+ step: 0.1,
56
+ },
31
57
  { name: "moveSpeed", label: "速度", type: "number", min: 50, max: 3000, step: 50 },
32
58
  { name: "turnRate", label: "旋回(°/秒)", type: "number", min: 30, max: 1080, step: 30 },
33
59
  { name: "maxStep", label: "登れる段差", type: "number", min: 0, max: 400, step: 4 },
@@ -47,6 +73,24 @@ export function registerCharacterHud(ctx, api) {
47
73
  return api.getControlScheme();
48
74
  case "drift":
49
75
  return api.getDrift() !== null;
76
+ case "driftKey":
77
+ return keyChoiceOf(api.getKeys().drift)?.value;
78
+ case "driftHop":
79
+ return api.getDrift()?.hop ?? false;
80
+ case "jumpKey":
81
+ return keyChoiceOf(api.getKeys().jump)?.value;
82
+ case "jump":
83
+ return api.getJump() !== null;
84
+ case "jumpHeight":
85
+ return (api.getJump() ?? DEFAULT_JUMP).height;
86
+ case "airJumps":
87
+ return (api.getJump() ?? DEFAULT_JUMP).airJumps;
88
+ case "hover":
89
+ return (api.getJump()?.hover ?? null) !== null;
90
+ case "hoverDuration":
91
+ return (api.getJump()?.hover ?? DEFAULT_HOVER).duration;
92
+ case "hoverThrust":
93
+ return (api.getJump()?.hover ?? DEFAULT_HOVER).thrust;
50
94
  case "moveSpeed":
51
95
  return motion.moveSpeed;
52
96
  case "turnRate":
@@ -82,6 +126,23 @@ export function registerCharacterHud(ctx, api) {
82
126
  case "drift":
83
127
  api.setDrift(truthy(value));
84
128
  return;
129
+ case "driftKey":
130
+ case "jumpKey":
131
+ api.setKeys(withKeyChoice(api.getKeys(), name === "driftKey" ? "drift" : "jump", String(value)));
132
+ return;
133
+ case "driftHop":
134
+ // Like the other drift tuning: only while drifting is on.
135
+ if (api.getDrift())
136
+ api.setDrift({ hop: truthy(value) });
137
+ return;
138
+ case "jump":
139
+ api.setJump(truthy(value));
140
+ return;
141
+ case "hover":
142
+ // Like the other jump tuning: only while jumping is on.
143
+ if (api.getJump())
144
+ api.setJump({ hover: truthy(value) });
145
+ return;
85
146
  }
86
147
  const n = Number(value);
87
148
  if (!Number.isFinite(n))
@@ -96,6 +157,23 @@ export function registerCharacterHud(ctx, api) {
96
157
  case "maxStep":
97
158
  api.setMotion({ maxStep: n });
98
159
  break;
160
+ case "jumpHeight":
161
+ // Tuning while off keeps it off (applied when jumping is turned on).
162
+ if (api.getJump())
163
+ api.setJump({ height: n });
164
+ break;
165
+ case "airJumps":
166
+ if (api.getJump())
167
+ api.setJump({ airJumps: n });
168
+ break;
169
+ case "hoverDuration":
170
+ if (api.getJump()?.hover)
171
+ api.setJump({ hover: { duration: n } });
172
+ break;
173
+ case "hoverThrust":
174
+ if (api.getJump()?.hover)
175
+ api.setJump({ hover: { thrust: n } });
176
+ break;
99
177
  case "anchorX":
100
178
  api.setAnchor({ x: n / 100 });
101
179
  break;
@@ -125,7 +203,16 @@ export function registerCharacterHud(ctx, api) {
125
203
  run: () => api.placeAtAnchor(),
126
204
  isEnabled: () => api.isEnabled(),
127
205
  });
206
+ const offJump = ctx.actions.register({
207
+ id: "character:jump",
208
+ label: "ジャンプ",
209
+ group: "キャラクター",
210
+ order: 3,
211
+ run: () => api.jump(),
212
+ isEnabled: () => api.isEnabled() && api.getJump() !== null,
213
+ });
128
214
  return () => {
215
+ offJump();
129
216
  offPlace();
130
217
  offToggle();
131
218
  offSettings();
@@ -1 +1 @@
1
- {"version":3,"file":"register-character-hud.js","sourceRoot":"","sources":["../src/register-character-hud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-character-hud.js","sourceRoot":"","sources":["../src/register-character-hud.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edv4h/usketch-plugin-character",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -37,7 +37,7 @@
37
37
  "devDependencies": {
38
38
  "@types/react": "19.3.0",
39
39
  "typescript": "7.0.2",
40
- "vitest": "5.0.5"
40
+ "vitest": "5.1.0"
41
41
  },
42
42
  "scripts": {
43
43
  "build": "tsc -p tsconfig.json",