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

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 +65 -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 +1946 -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 +109 -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 +1945 -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 +67 -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 +87 -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 +79 -0
  101. package/src/avatar/face.ts +187 -0
  102. package/src/avatar/geom.ts +173 -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 +303 -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 +118 -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 +39 -8
  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,62 @@
1
+ import { C as pixelSize, P as toCode } from "./svg-markup.js";
2
+ import { r as renderCanvas, t as renderKey } from "./pose-key.js";
3
+ //#region src/avatar/outputs/live-canvas.ts
4
+ /**
5
+ * A canvas that holds one avatar and redraws only when the quantised pose,
6
+ * look or options change. The Pixi and three.js adapters upload it as a
7
+ * texture after each redraw.
8
+ */
9
+ function makeCanvas(w, h) {
10
+ if (typeof document !== "undefined") {
11
+ const canvas = document.createElement("canvas");
12
+ canvas.width = w;
13
+ canvas.height = h;
14
+ return {
15
+ canvas,
16
+ ctx: canvas.getContext("2d")
17
+ };
18
+ }
19
+ const canvas = new OffscreenCanvas(w, h);
20
+ return {
21
+ canvas,
22
+ ctx: canvas.getContext("2d")
23
+ };
24
+ }
25
+ /** A live canvas at `opts.size` × `resolution` device pixels. */
26
+ function liveCanvas(like, opts, resolution = 2) {
27
+ const scaled = {
28
+ ...opts,
29
+ size: (opts.size ?? 64) * resolution
30
+ };
31
+ const { width, height } = pixelSize(scaled);
32
+ const { canvas, ctx } = makeCanvas(Math.ceil(width), Math.ceil(height));
33
+ let look = like;
34
+ let key = "";
35
+ return {
36
+ canvas,
37
+ draw(pose) {
38
+ const options = {
39
+ ...scaled,
40
+ ...pose ? { pose } : {}
41
+ };
42
+ const next = renderKey(toCode(look), options);
43
+ if (next === key || !ctx) return false;
44
+ key = next;
45
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
46
+ renderCanvas(ctx, look, {
47
+ ...options,
48
+ x: 0,
49
+ y: 0
50
+ });
51
+ return true;
52
+ },
53
+ setLook(next) {
54
+ look = next;
55
+ key = "";
56
+ }
57
+ };
58
+ }
59
+ //#endregion
60
+ export { liveCanvas as t };
61
+
62
+ //# sourceMappingURL=live-canvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-canvas.js","names":[],"sources":["../../src/avatar/outputs/live-canvas.ts"],"mappings":";;;;;;;;AAoBA,SAAS,WAAW,GAAW,GAA+E;CAC5G,IAAI,OAAO,aAAa,aAAa;EACnC,MAAM,SAAS,SAAS,cAAc,QAAQ;EAC9C,OAAO,QAAQ;EACf,OAAO,SAAS;EAChB,OAAO;GAAE;GAAQ,KAAK,OAAO,WAAW,IAAI;EAAE;CAChD;CACA,MAAM,SAAS,IAAI,gBAAgB,GAAG,CAAC;CACvC,OAAO;EAAE;EAAQ,KAAK,OAAO,WAAW,IAAI;CAAE;AAChD;;AAGA,SAAgB,WAAW,MAAgB,MAAqB,aAAa,GAAe;CAC1F,MAAM,SAAS;EAAE,GAAG;EAAM,OAAO,KAAK,QAAQ,MAAM;CAAW;CAC/D,MAAM,EAAE,OAAO,WAAW,UAAU,MAAM;CAC1C,MAAM,EAAE,QAAQ,QAAQ,WAAW,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,MAAM,CAAC;CACtE,IAAI,OAAO;CACX,IAAI,MAAM;CACV,OAAO;EACL;EACA,KAAK,MAAM;GACT,MAAM,UAAU;IAAE,GAAG;IAAQ,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC;GAAG;GACvD,MAAM,OAAO,UAAU,OAAO,IAAI,GAAG,OAAO;GAC5C,IAAI,SAAS,OAAO,CAAC,KACnB,OAAO;GAET,MAAM;GACN,IAAI,UAAU,GAAG,GAAG,OAAO,OAAO,OAAO,MAAM;GAC/C,aAAa,KAAK,MAAM;IAAE,GAAG;IAAS,GAAG;IAAG,GAAG;GAAE,CAAC;GAClD,OAAO;EACT;EACA,QAAQ,MAAM;GACZ,OAAO;GACP,MAAM;EACR;CACF;AACF"}
package/dist/shared/mp.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as getUiStack } from "./page-stack.js";
2
- import { d as hubLink, n as pageBridge, t as outdatedRuntime } from "./bridge.js";
2
+ import { f as hubLink, n as pageBridge, t as outdatedRuntime } from "./bridge.js";
3
3
  import { t as latestState } from "./latest-state.js";
4
4
  //#region src/realtime/multiplayer-forwarder.ts
5
5
  /**