@diffenderfer-games/hub 2.0.0-next.5 → 2.0.0-next.6

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 (170) hide show
  1. package/CHANGELOG.md +54 -19
  2. package/README.md +3 -6
  3. package/dist/auto.d.ts +5 -5
  4. package/dist/auto.js +2 -2
  5. package/dist/avatar-pixi.d.ts +147 -0
  6. package/dist/avatar-pixi.d.ts.map +1 -0
  7. package/dist/avatar-pixi.js +280 -0
  8. package/dist/avatar-pixi.js.map +1 -0
  9. package/dist/avatar-svg.d.ts +4 -0
  10. package/dist/avatar-svg.js +5 -0
  11. package/dist/avatar-three.d.ts +69 -0
  12. package/dist/avatar-three.d.ts.map +1 -0
  13. package/dist/avatar-three.js +49 -0
  14. package/dist/avatar-three.js.map +1 -0
  15. package/dist/avatar.d.ts +7 -0
  16. package/dist/avatar.js +487 -0
  17. package/dist/avatar.js.map +1 -0
  18. package/dist/daily.d.ts +2 -2
  19. package/dist/doctor/cli.mjs +1 -1
  20. package/dist/index.d.ts +5 -5
  21. package/dist/index.js +2 -2
  22. package/dist/input.d.ts +2 -2
  23. package/dist/shared/animator.d.ts +104 -0
  24. package/dist/shared/animator.d.ts.map +1 -0
  25. package/dist/shared/art.js +1804 -0
  26. package/dist/shared/art.js.map +1 -0
  27. package/dist/shared/atlas.d.ts +134 -0
  28. package/dist/shared/atlas.d.ts.map +1 -0
  29. package/dist/shared/avatar.d.ts +117 -0
  30. package/dist/shared/avatar.d.ts.map +1 -0
  31. package/dist/shared/bridge.js +13 -5
  32. package/dist/shared/bridge.js.map +1 -1
  33. package/dist/shared/client-version.gen.js +1 -1
  34. package/dist/shared/daily.d.ts +129 -18
  35. package/dist/shared/daily.d.ts.map +1 -1
  36. package/dist/shared/daily.js +120 -26
  37. package/dist/shared/daily.js.map +1 -1
  38. package/dist/shared/defineProperty.js +39 -0
  39. package/dist/shared/describe.d.ts +32 -0
  40. package/dist/shared/describe.d.ts.map +1 -0
  41. package/dist/shared/describe.js +101 -0
  42. package/dist/shared/describe.js.map +1 -0
  43. package/dist/shared/globals.js +1 -39
  44. package/dist/shared/globals.js.map +1 -1
  45. package/dist/shared/index.d.ts +503 -14
  46. package/dist/shared/index.d.ts.map +1 -1
  47. package/dist/shared/input.d.ts +31 -13
  48. package/dist/shared/input.d.ts.map +1 -1
  49. package/dist/shared/input.js +40 -2
  50. package/dist/shared/input.js.map +1 -1
  51. package/dist/shared/json-guards.js +48 -0
  52. package/dist/shared/json-guards.js.map +1 -0
  53. package/dist/shared/live-canvas.js +62 -0
  54. package/dist/shared/live-canvas.js.map +1 -0
  55. package/dist/shared/mp.js +1 -1
  56. package/dist/shared/overlays.js +800 -0
  57. package/dist/shared/overlays.js.map +1 -0
  58. package/dist/shared/page-stack.js +2 -1
  59. package/dist/shared/page-stack.js.map +1 -1
  60. package/dist/shared/pose-key.js +249 -0
  61. package/dist/shared/pose-key.js.map +1 -0
  62. package/dist/shared/race.js +1 -1
  63. package/dist/shared/rooms.js +1 -1
  64. package/dist/shared/scene.d.ts +90 -0
  65. package/dist/shared/scene.d.ts.map +1 -0
  66. package/dist/shared/social.d.ts +55 -4
  67. package/dist/shared/social.d.ts.map +1 -1
  68. package/dist/shared/src.js +2020 -144
  69. package/dist/shared/src.js.map +1 -1
  70. package/dist/shared/svg-markup.js +1860 -0
  71. package/dist/shared/svg-markup.js.map +1 -0
  72. package/dist/shared/svg.js +27 -0
  73. package/dist/shared/svg.js.map +1 -0
  74. package/dist/shared/types.d.ts +166 -0
  75. package/dist/shared/types.d.ts.map +1 -0
  76. package/dist/social.d.ts +2 -2
  77. package/dist/social.js +2 -2
  78. package/dist/turns.d.ts +39 -0
  79. package/dist/turns.d.ts.map +1 -0
  80. package/dist/turns.js +117 -0
  81. package/dist/turns.js.map +1 -0
  82. package/package.json +33 -3
  83. package/src/avatar/adapters/pixi-avatar.ts +73 -0
  84. package/src/avatar/adapters/pixi-crowd.ts +302 -0
  85. package/src/avatar/adapters/pixi-types.ts +84 -0
  86. package/src/avatar/adapters/three.ts +126 -0
  87. package/src/avatar/animator/animator.ts +285 -0
  88. package/src/avatar/animator/reactions.ts +44 -0
  89. package/src/avatar/animator/schedule.ts +73 -0
  90. package/src/avatar/art/beard.ts +49 -0
  91. package/src/avatar/art/glasses.ts +9 -0
  92. package/src/avatar/art/hair.ts +254 -0
  93. package/src/avatar/art/headwear.ts +75 -0
  94. package/src/avatar/art/index.ts +21 -0
  95. package/src/avatar/art/shape.ts +68 -0
  96. package/src/avatar/art-store.ts +36 -0
  97. package/src/avatar/atlas.ts +236 -0
  98. package/src/avatar/catalog-view.ts +14 -0
  99. package/src/avatar/colour.ts +109 -0
  100. package/src/avatar/describe.ts +76 -0
  101. package/src/avatar/face.ts +187 -0
  102. package/src/avatar/geom.ts +168 -0
  103. package/src/avatar/layout.ts +47 -0
  104. package/src/avatar/look-like.ts +52 -0
  105. package/src/avatar/outputs/bitmap.ts +75 -0
  106. package/src/avatar/outputs/canvas-paint.ts +177 -0
  107. package/src/avatar/outputs/canvas.ts +62 -0
  108. package/src/avatar/outputs/custom-element.ts +140 -0
  109. package/src/avatar/outputs/element.ts +58 -0
  110. package/src/avatar/outputs/live-canvas.ts +57 -0
  111. package/src/avatar/outputs/overlay-svg.ts +22 -0
  112. package/src/avatar/outputs/pose-key.ts +30 -0
  113. package/src/avatar/outputs/svg-markup.ts +113 -0
  114. package/src/avatar/outputs/svg.ts +41 -0
  115. package/src/avatar/overlays.ts +128 -0
  116. package/src/avatar/render/body.ts +116 -0
  117. package/src/avatar/render/colours.ts +81 -0
  118. package/src/avatar/render/compose.ts +258 -0
  119. package/src/avatar/render/context.ts +117 -0
  120. package/src/avatar/render/eyes.ts +78 -0
  121. package/src/avatar/render/eyewear.ts +56 -0
  122. package/src/avatar/render/frame.ts +60 -0
  123. package/src/avatar/render/head.ts +81 -0
  124. package/src/avatar/render/mouth.ts +86 -0
  125. package/src/avatar/render/props.ts +91 -0
  126. package/src/avatar/render/types.ts +84 -0
  127. package/src/avatar/scene.ts +119 -0
  128. package/src/avatar-pixi.ts +20 -0
  129. package/src/avatar-svg.ts +21 -0
  130. package/src/avatar-three.ts +18 -0
  131. package/src/avatar.ts +62 -0
  132. package/src/core/avatar/avatar-cache.ts +95 -0
  133. package/src/core/avatar/avatar-ref.ts +34 -0
  134. package/src/core/avatar/avatar-types.ts +43 -0
  135. package/src/core/avatar/hub-avatar.ts +308 -0
  136. package/src/core/connection.ts +8 -0
  137. package/src/core/errors.ts +7 -1
  138. package/src/core/hub-progress.ts +269 -238
  139. package/src/core/hub.ts +174 -6
  140. package/src/core/offline/hub-kinds/avatar-kind.ts +42 -0
  141. package/src/core/offline/hub-kinds/index.ts +9 -0
  142. package/src/core/offline/hub-kinds/saved-kind.ts +93 -0
  143. package/src/core/page-account.ts +121 -0
  144. package/src/core/rest/routes.gen.ts +31 -1
  145. package/src/core/resume/hub-resume.ts +39 -5
  146. package/src/core/resume/resume-types.ts +2 -2
  147. package/src/core/saved/daily-saves.ts +196 -0
  148. package/src/core/saved/daily-seed.ts +16 -0
  149. package/src/core/saved/hub-saved.ts +221 -0
  150. package/src/core/saved/local-saved.ts +122 -0
  151. package/src/core/saved/saved-list.ts +129 -0
  152. package/src/core/saved/saved-open.ts +104 -0
  153. package/src/core/saved/saved-order.ts +49 -0
  154. package/src/core/saved/saved-types.ts +24 -0
  155. package/src/core/turns/hub-turns.ts +140 -0
  156. package/src/core/turns/turn-game.ts +388 -0
  157. package/src/core/version/client-version.gen.ts +2 -2
  158. package/src/daily/daily-system.ts +112 -13
  159. package/src/daily/page-daily.ts +2 -2
  160. package/src/daily/types.ts +46 -9
  161. package/src/doctor/hub-version-fetch.ts +43 -43
  162. package/src/index.ts +10 -1
  163. package/src/input/input-system.ts +10 -1
  164. package/src/input/navigator.ts +11 -0
  165. package/src/input.ts +1 -0
  166. package/src/overlay/overlay.ts +25 -1
  167. package/src/realtime/runtime-api.ts +14 -3
  168. package/src/social.ts +1 -0
  169. package/src/turns-kit/check-rules.ts +182 -0
  170. package/src/turns.ts +13 -0
@@ -0,0 +1,104 @@
1
+ import { _ as FaceParams, a as LookDir, c as Pose, h as Expression, n as BodyPose, o as LookLike, s as Point, u as StatusProp } from "./types.js";
2
+ //#region src/avatar/animator/reactions.d.ts
3
+ /** A reaction name. */
4
+ type Reaction = 'nod' | 'shake' | 'bounce' | 'cheer' | 'gasp' | 'flinch' | 'shrug' | 'sleep' | 'wave';
5
+ /** What a reaction adds at a moment. */
6
+ interface ReactionFrame {
7
+ readonly bob: Point;
8
+ readonly tilt: number;
9
+ readonly squash: number;
10
+ }
11
+ /** A reaction's track. */
12
+ interface ReactionTrack {
13
+ readonly ms: number;
14
+ readonly expression?: Expression;
15
+ readonly body?: BodyPose;
16
+ readonly at: (u: number) => ReactionFrame;
17
+ }
18
+ /** Every reaction's track; `u` runs 0 … 1 over `ms`. */
19
+ declare const REACTIONS: Readonly<Record<Reaction, ReactionTrack>>;
20
+ //#endregion
21
+ //#region src/avatar/animator/animator.d.ts
22
+ /** Options for {@link animator}. */
23
+ interface AnimatorOptions {
24
+ /** Seeds blinks and idle motion (a user id is ideal). */
25
+ readonly seed?: string | number;
26
+ /** `'auto'` reads `prefers-reduced-motion`; `true` forces it. */
27
+ readonly reducedMotion?: 'auto' | boolean;
28
+ /** Idle bob, sway, wandering gaze and micro expressions (default on). */
29
+ readonly idle?: boolean;
30
+ /** The resting expression (default `neutral`). */
31
+ readonly base?: Expression;
32
+ /** The time source for calls without `at` (default `performance.now()`). */
33
+ readonly clock?: () => number;
34
+ }
35
+ /** When a call happens; defaults to the animator's clock. */
36
+ interface At {
37
+ readonly at?: number;
38
+ }
39
+ /** Game events mapped to tuned faces, so every game feels the same. */
40
+ type Feeling = 'win' | 'lose' | 'bigPlay' | 'victim' | 'waiting' | 'yourTurn' | 'idle';
41
+ /** A face and body driver for one avatar. */
42
+ declare class Animator {
43
+ /** Reduced motion: no idle bob, sway or reaction movement; quick cross-fades; a static open mouth when talking. */
44
+ readonly reducedMotion: boolean;
45
+ private readonly seed;
46
+ private readonly idle;
47
+ private readonly clock;
48
+ private readonly bases;
49
+ private readonly expresses;
50
+ private readonly looks;
51
+ private readonly talks;
52
+ private readonly reacts;
53
+ private readonly bodies;
54
+ private readonly statuses;
55
+ private current;
56
+ constructor(look: LookLike, opts?: AnimatorOptions);
57
+ /** The look this animator drives (adapters render it with each pose). */
58
+ get look(): LookLike;
59
+ /** Swaps the look (an `ev:avatar` change) without resetting the schedule. */
60
+ setLook(look: LookLike): this;
61
+ private now;
62
+ private fade;
63
+ /** Shows an expression (or raw parameters), then returns to the base. */
64
+ express(e: Expression | FaceParams, o?: At & {
65
+ readonly fadeMs?: number;
66
+ readonly holdMs?: number;
67
+ }): this;
68
+ /** Sets the resting expression. */
69
+ setBase(e: Expression | FaceParams, o?: At & {
70
+ readonly fadeMs?: number;
71
+ }): this;
72
+ /** Eases the gaze toward a direction; `null` goes back to wandering (or the centre with `idle: false`). */
73
+ lookAt(target: LookDir | null, o?: At & {
74
+ readonly speed?: number;
75
+ }): this;
76
+ /** Flaps the mouth until `talk(false)`. */
77
+ talk(isOn: boolean, o?: At): this;
78
+ /** Talks for a duration. */
79
+ talkFor(ms: number, o?: At): this;
80
+ /** Drives the mouth from audio amplitude (0 … 1). */
81
+ talkLevel(level: number, o?: At): this;
82
+ /** Plays a one-shot reaction. */
83
+ react(reaction: Reaction, o?: At): this;
84
+ /** Sets the body pose; cycle poses (`walk`, `run`, `dance`) loop every `cycleMs`. */
85
+ setBody(body: BodyPose, o?: At & {
86
+ readonly cycleMs?: number;
87
+ }): this;
88
+ /** Sets or clears the status prop. */
89
+ setStatus(status: StatusProp | null, o?: At): this;
90
+ /** Plays the tuned face and reaction for a game event. */
91
+ feel(feeling: Feeling, o?: At): this;
92
+ private faceAt;
93
+ private gazeAt;
94
+ private approach;
95
+ private talkAt;
96
+ private reactionAt;
97
+ /** The pose at time `t` (same clock as the calls). Pure: the same schedule and `t` give the same pose. */
98
+ pose(t?: number): Pose;
99
+ }
100
+ /** A new animator for a look: `animator(look, { seed: userId })`. */
101
+ declare function animator(look: LookLike, opts?: AnimatorOptions): Animator;
102
+ //#endregion
103
+ export { animator as a, Feeling as i, AnimatorOptions as n, REACTIONS as o, At as r, Reaction as s, Animator as t };
104
+ //# sourceMappingURL=animator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animator.d.ts","names":[],"sources":["../../src/avatar/animator/reactions.ts","../../src/avatar/animator/animator.ts"],"mappings":";;;KASY;;UAGK;WACN,KAAK;WACL;WACA;;;UAIM;WACN;WACA,aAAa;WACb,OAAO;WACP,KAAK,cAAc;;;cAOjB,WAAW,SAAS,OAAO,UAAU;;;;UChBjC;;WAEN;;WAEA;;WAEA;;WAEA,OAAO;;WAEP;;;UAIM;WACN;;;KAIC;;cAkCC;;WAEF;mBACQ;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;UACT;EAEI,YAAA,MAAM,UAAU,OAAM;;MAU9B,QAAQ;;EAKZ,QAAQ,MAAM;UAKN;UAIA;;EAKR,QAAQ,GAAG,aAAa,YAAY,IAAG;aAAgB;aAA0B;;;EAMjF,QAAQ,GAAG,aAAa,YAAY,IAAG;aAAgB;;;EAMvD,OAAO,QAAQ,gBAAgB,IAAG;aAAgB;;;EAMlD,KAAK,eAAe,IAAG;;EAOvB,QAAQ,YAAY,IAAG;;EAOvB,UAAU,eAAe,IAAG;;EAM5B,MAAM,UAAU,UAAU,IAAG;;EAM7B,QAAQ,MAAM,UAAU,IAAG;aAAgB;;;EAM3C,UAAU,QAAQ,mBAAmB,IAAG;;EAMxC,KAAK,SAAS,SAAS,IAAG;UAalB;UA2BA;UAmBA;UAMA;UAYA;;EAcR,KAAK,aAA2B;;;iBAwBlB,SAAS,MAAM,UAAU,OAAM,kBAAuB"}