@datamoc/mw_games 0.1.2 → 0.2.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 (317) hide show
  1. package/README.md +42 -17
  2. package/dist/actors/Aura.d.ts +29 -0
  3. package/dist/actors/Aura.d.ts.map +1 -0
  4. package/dist/actors/Aura.js +69 -0
  5. package/dist/actors/Aura.js.map +1 -0
  6. package/dist/actors/ItemStatusEffect.d.ts +27 -0
  7. package/dist/actors/ItemStatusEffect.d.ts.map +1 -0
  8. package/dist/actors/ItemStatusEffect.js +35 -0
  9. package/dist/actors/ItemStatusEffect.js.map +1 -0
  10. package/dist/actors/Support.d.ts +32 -0
  11. package/dist/actors/Support.d.ts.map +1 -0
  12. package/dist/actors/Support.js +60 -0
  13. package/dist/actors/Support.js.map +1 -0
  14. package/dist/actors/Traits.d.ts +29 -0
  15. package/dist/actors/Traits.d.ts.map +1 -0
  16. package/dist/actors/Traits.js +21 -0
  17. package/dist/actors/Traits.js.map +1 -0
  18. package/dist/actors/index.d.ts +8 -0
  19. package/dist/actors/index.d.ts.map +1 -1
  20. package/dist/actors/index.js +4 -0
  21. package/dist/actors/index.js.map +1 -1
  22. package/dist/assets/Streaming.d.ts +40 -0
  23. package/dist/assets/Streaming.d.ts.map +1 -0
  24. package/dist/assets/Streaming.js +79 -0
  25. package/dist/assets/Streaming.js.map +1 -0
  26. package/dist/assets/index.d.ts +13 -0
  27. package/dist/assets/index.d.ts.map +1 -1
  28. package/dist/assets/index.js +19 -0
  29. package/dist/assets/index.js.map +1 -1
  30. package/dist/audio/Captions.d.ts +15 -0
  31. package/dist/audio/Captions.d.ts.map +1 -0
  32. package/dist/audio/Captions.js +4 -0
  33. package/dist/audio/Captions.js.map +1 -0
  34. package/dist/audio/Midi.d.ts +75 -0
  35. package/dist/audio/Midi.d.ts.map +1 -0
  36. package/dist/audio/Midi.js +186 -0
  37. package/dist/audio/Midi.js.map +1 -0
  38. package/dist/audio/Orchestrator.d.ts +40 -0
  39. package/dist/audio/Orchestrator.d.ts.map +1 -0
  40. package/dist/audio/Orchestrator.js +48 -0
  41. package/dist/audio/Orchestrator.js.map +1 -0
  42. package/dist/audio/Sound.d.ts +3 -0
  43. package/dist/audio/Sound.d.ts.map +1 -1
  44. package/dist/audio/Sound.js +4 -0
  45. package/dist/audio/Sound.js.map +1 -1
  46. package/dist/audio/Synth.d.ts +35 -0
  47. package/dist/audio/Synth.d.ts.map +1 -0
  48. package/dist/audio/Synth.js +96 -0
  49. package/dist/audio/Synth.js.map +1 -0
  50. package/dist/audio/index.d.ts +8 -0
  51. package/dist/audio/index.d.ts.map +1 -1
  52. package/dist/audio/index.js +4 -0
  53. package/dist/audio/index.js.map +1 -1
  54. package/dist/board/Army.d.ts +17 -0
  55. package/dist/board/Army.d.ts.map +1 -0
  56. package/dist/board/Army.js +48 -0
  57. package/dist/board/Army.js.map +1 -0
  58. package/dist/board/FogOfWar.d.ts +23 -0
  59. package/dist/board/FogOfWar.d.ts.map +1 -0
  60. package/dist/board/FogOfWar.js +40 -0
  61. package/dist/board/FogOfWar.js.map +1 -0
  62. package/dist/board/Tactics.d.ts +2 -0
  63. package/dist/board/Tactics.d.ts.map +1 -1
  64. package/dist/board/Tactics.js +29 -7
  65. package/dist/board/Tactics.js.map +1 -1
  66. package/dist/board/index.d.ts +5 -1
  67. package/dist/board/index.d.ts.map +1 -1
  68. package/dist/board/index.js +3 -1
  69. package/dist/board/index.js.map +1 -1
  70. package/dist/core/Feedback.d.ts +23 -0
  71. package/dist/core/Feedback.d.ts.map +1 -0
  72. package/dist/core/Feedback.js +35 -0
  73. package/dist/core/Feedback.js.map +1 -0
  74. package/dist/core/Game.d.ts +11 -0
  75. package/dist/core/Game.d.ts.map +1 -1
  76. package/dist/core/Game.js +54 -0
  77. package/dist/core/Game.js.map +1 -1
  78. package/dist/core/Input.d.ts +58 -0
  79. package/dist/core/Input.d.ts.map +1 -1
  80. package/dist/core/Input.js +135 -0
  81. package/dist/core/Input.js.map +1 -1
  82. package/dist/core/Loading.d.ts +48 -0
  83. package/dist/core/Loading.d.ts.map +1 -0
  84. package/dist/core/Loading.js +102 -0
  85. package/dist/core/Loading.js.map +1 -0
  86. package/dist/core/News.d.ts +46 -0
  87. package/dist/core/News.d.ts.map +1 -0
  88. package/dist/core/News.js +79 -0
  89. package/dist/core/News.js.map +1 -0
  90. package/dist/core/PlayerInput.d.ts +38 -0
  91. package/dist/core/PlayerInput.d.ts.map +1 -0
  92. package/dist/core/PlayerInput.js +57 -0
  93. package/dist/core/PlayerInput.js.map +1 -0
  94. package/dist/core/RunHistory.d.ts +43 -0
  95. package/dist/core/RunHistory.d.ts.map +1 -0
  96. package/dist/core/RunHistory.js +41 -0
  97. package/dist/core/RunHistory.js.map +1 -0
  98. package/dist/core/Sanitize.d.ts +56 -0
  99. package/dist/core/Sanitize.d.ts.map +1 -0
  100. package/dist/core/Sanitize.js +87 -0
  101. package/dist/core/Sanitize.js.map +1 -0
  102. package/dist/core/Save.d.ts +31 -7
  103. package/dist/core/Save.d.ts.map +1 -1
  104. package/dist/core/Save.js +56 -0
  105. package/dist/core/Save.js.map +1 -1
  106. package/dist/core/SaveSync.d.ts +26 -0
  107. package/dist/core/SaveSync.d.ts.map +1 -0
  108. package/dist/core/SaveSync.js +52 -0
  109. package/dist/core/SaveSync.js.map +1 -0
  110. package/dist/core/Scramble.d.ts +13 -0
  111. package/dist/core/Scramble.d.ts.map +1 -0
  112. package/dist/core/Scramble.js +44 -0
  113. package/dist/core/Scramble.js.map +1 -0
  114. package/dist/core/Spawner.d.ts +48 -0
  115. package/dist/core/Spawner.d.ts.map +1 -0
  116. package/dist/core/Spawner.js +65 -0
  117. package/dist/core/Spawner.js.map +1 -0
  118. package/dist/core/Tween.d.ts +25 -0
  119. package/dist/core/Tween.d.ts.map +1 -0
  120. package/dist/core/Tween.js +60 -0
  121. package/dist/core/Tween.js.map +1 -0
  122. package/dist/core/UndoHistory.d.ts +37 -0
  123. package/dist/core/UndoHistory.d.ts.map +1 -0
  124. package/dist/core/UndoHistory.js +49 -0
  125. package/dist/core/UndoHistory.js.map +1 -0
  126. package/dist/core/index.d.ts +20 -0
  127. package/dist/core/index.d.ts.map +1 -1
  128. package/dist/core/index.js +11 -0
  129. package/dist/core/index.js.map +1 -1
  130. package/dist/i18n/Fluent.d.ts +7 -0
  131. package/dist/i18n/Fluent.d.ts.map +1 -0
  132. package/dist/i18n/Fluent.js +86 -0
  133. package/dist/i18n/Fluent.js.map +1 -0
  134. package/dist/i18n/index.d.ts +15 -1
  135. package/dist/i18n/index.d.ts.map +1 -1
  136. package/dist/i18n/index.js +17 -2
  137. package/dist/i18n/index.js.map +1 -1
  138. package/dist/index.d.ts +1 -0
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +1 -0
  141. package/dist/index.js.map +1 -1
  142. package/dist/mw_games.global.js +351 -79
  143. package/dist/render/Camera.d.ts +29 -2
  144. package/dist/render/Camera.d.ts.map +1 -1
  145. package/dist/render/Camera.js +40 -11
  146. package/dist/render/Camera.js.map +1 -1
  147. package/dist/render/Capabilities.d.ts +51 -0
  148. package/dist/render/Capabilities.d.ts.map +1 -0
  149. package/dist/render/Capabilities.js +56 -0
  150. package/dist/render/Capabilities.js.map +1 -0
  151. package/dist/render/ColorBlindness.d.ts +16 -0
  152. package/dist/render/ColorBlindness.d.ts.map +1 -0
  153. package/dist/render/ColorBlindness.js +41 -0
  154. package/dist/render/ColorBlindness.js.map +1 -0
  155. package/dist/render/Minimap.d.ts +52 -0
  156. package/dist/render/Minimap.d.ts.map +1 -0
  157. package/dist/render/Minimap.js +95 -0
  158. package/dist/render/Minimap.js.map +1 -0
  159. package/dist/render/Viewport.d.ts +46 -0
  160. package/dist/render/Viewport.d.ts.map +1 -0
  161. package/dist/render/Viewport.js +52 -0
  162. package/dist/render/Viewport.js.map +1 -0
  163. package/dist/render/index.d.ts +9 -1
  164. package/dist/render/index.d.ts.map +1 -1
  165. package/dist/render/index.js +5 -1
  166. package/dist/render/index.js.map +1 -1
  167. package/dist/roguelike/Stealth.d.ts +34 -0
  168. package/dist/roguelike/Stealth.d.ts.map +1 -0
  169. package/dist/roguelike/Stealth.js +35 -0
  170. package/dist/roguelike/Stealth.js.map +1 -0
  171. package/dist/roguelike/index.d.ts +2 -0
  172. package/dist/roguelike/index.d.ts.map +1 -1
  173. package/dist/roguelike/index.js +1 -0
  174. package/dist/roguelike/index.js.map +1 -1
  175. package/dist/rpg/Collision.d.ts +42 -0
  176. package/dist/rpg/Collision.d.ts.map +1 -0
  177. package/dist/rpg/Collision.js +77 -0
  178. package/dist/rpg/Collision.js.map +1 -0
  179. package/dist/rpg/FreeMover.d.ts +45 -0
  180. package/dist/rpg/FreeMover.d.ts.map +1 -0
  181. package/dist/rpg/FreeMover.js +68 -0
  182. package/dist/rpg/FreeMover.js.map +1 -0
  183. package/dist/rpg/Marshal.d.ts +65 -0
  184. package/dist/rpg/Marshal.d.ts.map +1 -0
  185. package/dist/rpg/Marshal.js +393 -0
  186. package/dist/rpg/Marshal.js.map +1 -0
  187. package/dist/rpg/Quest.d.ts +41 -0
  188. package/dist/rpg/Quest.d.ts.map +1 -1
  189. package/dist/rpg/Quest.js +39 -6
  190. package/dist/rpg/Quest.js.map +1 -1
  191. package/dist/rpg/index.d.ts +7 -1
  192. package/dist/rpg/index.d.ts.map +1 -1
  193. package/dist/rpg/index.js +3 -0
  194. package/dist/rpg/index.js.map +1 -1
  195. package/dist/stage/DialogueStage.d.ts +1 -2
  196. package/dist/stage/DialogueStage.d.ts.map +1 -1
  197. package/dist/stage/DialogueStage.js +7 -22
  198. package/dist/stage/DialogueStage.js.map +1 -1
  199. package/dist/stage/index.d.ts +1 -1
  200. package/dist/stage/index.d.ts.map +1 -1
  201. package/dist/stage/script.d.ts +29 -0
  202. package/dist/stage/script.d.ts.map +1 -1
  203. package/dist/stage/script.js +0 -0
  204. package/dist/stage/script.js.map +1 -1
  205. package/dist/three-d/Character3D.d.ts +48 -0
  206. package/dist/three-d/Character3D.d.ts.map +1 -0
  207. package/dist/three-d/Character3D.js +96 -0
  208. package/dist/three-d/Character3D.js.map +1 -0
  209. package/dist/three-d/Engine3D.d.ts +23 -0
  210. package/dist/three-d/Engine3D.d.ts.map +1 -0
  211. package/dist/three-d/Engine3D.js +45 -0
  212. package/dist/three-d/Engine3D.js.map +1 -0
  213. package/dist/three-d/Grid.d.ts +14 -0
  214. package/dist/three-d/Grid.d.ts.map +1 -0
  215. package/dist/three-d/Grid.js +13 -0
  216. package/dist/three-d/Grid.js.map +1 -0
  217. package/dist/three-d/Heightmap.d.ts +35 -0
  218. package/dist/three-d/Heightmap.d.ts.map +1 -0
  219. package/dist/three-d/Heightmap.js +29 -0
  220. package/dist/three-d/Heightmap.js.map +1 -0
  221. package/dist/three-d/Models.d.ts +12 -0
  222. package/dist/three-d/Models.d.ts.map +1 -0
  223. package/dist/three-d/Models.js +14 -0
  224. package/dist/three-d/Models.js.map +1 -0
  225. package/dist/three-d/TileGrid3D.d.ts +21 -0
  226. package/dist/three-d/TileGrid3D.d.ts.map +1 -0
  227. package/dist/three-d/TileGrid3D.js +65 -0
  228. package/dist/three-d/TileGrid3D.js.map +1 -0
  229. package/dist/three-d/Vox.d.ts +24 -0
  230. package/dist/three-d/Vox.d.ts.map +1 -0
  231. package/dist/three-d/Vox.js +93 -0
  232. package/dist/three-d/Vox.js.map +1 -0
  233. package/dist/three-d/index.d.ts +13 -0
  234. package/dist/three-d/index.d.ts.map +1 -0
  235. package/dist/three-d/index.js +7 -0
  236. package/dist/three-d/index.js.map +1 -0
  237. package/dist/ui/Bar.d.ts +49 -0
  238. package/dist/ui/Bar.d.ts.map +1 -0
  239. package/dist/ui/Bar.js +70 -0
  240. package/dist/ui/Bar.js.map +1 -0
  241. package/dist/ui/BitmapLabel.d.ts +42 -0
  242. package/dist/ui/BitmapLabel.d.ts.map +1 -0
  243. package/dist/ui/BitmapLabel.js +59 -0
  244. package/dist/ui/BitmapLabel.js.map +1 -0
  245. package/dist/ui/Button.d.ts +52 -0
  246. package/dist/ui/Button.d.ts.map +1 -0
  247. package/dist/ui/Button.js +147 -0
  248. package/dist/ui/Button.js.map +1 -0
  249. package/dist/ui/FloatingText.d.ts +28 -0
  250. package/dist/ui/FloatingText.d.ts.map +1 -0
  251. package/dist/ui/FloatingText.js +39 -0
  252. package/dist/ui/FloatingText.js.map +1 -0
  253. package/dist/ui/HelpScreen.d.ts +29 -0
  254. package/dist/ui/HelpScreen.d.ts.map +1 -0
  255. package/dist/ui/HelpScreen.js +39 -0
  256. package/dist/ui/HelpScreen.js.map +1 -0
  257. package/dist/ui/IconGrid.d.ts +8 -0
  258. package/dist/ui/IconGrid.d.ts.map +1 -1
  259. package/dist/ui/IconGrid.js +27 -1
  260. package/dist/ui/IconGrid.js.map +1 -1
  261. package/dist/ui/Label.d.ts +9 -0
  262. package/dist/ui/Label.d.ts.map +1 -1
  263. package/dist/ui/Label.js +24 -1
  264. package/dist/ui/Label.js.map +1 -1
  265. package/dist/ui/ListView.d.ts +11 -0
  266. package/dist/ui/ListView.d.ts.map +1 -1
  267. package/dist/ui/ListView.js +55 -1
  268. package/dist/ui/ListView.js.map +1 -1
  269. package/dist/ui/LoadingScreen.d.ts +31 -0
  270. package/dist/ui/LoadingScreen.d.ts.map +1 -0
  271. package/dist/ui/LoadingScreen.js +60 -0
  272. package/dist/ui/LoadingScreen.js.map +1 -0
  273. package/dist/ui/MessageBox.d.ts +26 -0
  274. package/dist/ui/MessageBox.d.ts.map +1 -1
  275. package/dist/ui/MessageBox.js +62 -13
  276. package/dist/ui/MessageBox.js.map +1 -1
  277. package/dist/ui/RebindScreen.d.ts +55 -0
  278. package/dist/ui/RebindScreen.d.ts.map +1 -0
  279. package/dist/ui/RebindScreen.js +114 -0
  280. package/dist/ui/RebindScreen.js.map +1 -0
  281. package/dist/ui/Toast.d.ts +44 -0
  282. package/dist/ui/Toast.d.ts.map +1 -0
  283. package/dist/ui/Toast.js +89 -0
  284. package/dist/ui/Toast.js.map +1 -0
  285. package/dist/ui/VerticalLabel.d.ts +5 -0
  286. package/dist/ui/VerticalLabel.d.ts.map +1 -1
  287. package/dist/ui/VerticalLabel.js +18 -7
  288. package/dist/ui/VerticalLabel.js.map +1 -1
  289. package/dist/ui/Window.d.ts +6 -0
  290. package/dist/ui/Window.d.ts.map +1 -1
  291. package/dist/ui/Window.js +16 -1
  292. package/dist/ui/Window.js.map +1 -1
  293. package/dist/ui/WindowStack.d.ts +1 -0
  294. package/dist/ui/WindowStack.d.ts.map +1 -1
  295. package/dist/ui/WindowStack.js +4 -1
  296. package/dist/ui/WindowStack.js.map +1 -1
  297. package/dist/ui/index.d.ts +17 -1
  298. package/dist/ui/index.d.ts.map +1 -1
  299. package/dist/ui/index.js +9 -1
  300. package/dist/ui/index.js.map +1 -1
  301. package/dist/ui/theme.d.ts +21 -0
  302. package/dist/ui/theme.d.ts.map +1 -1
  303. package/dist/ui/theme.js +42 -0
  304. package/dist/ui/theme.js.map +1 -1
  305. package/dist/version.d.ts +13 -0
  306. package/dist/version.d.ts.map +1 -0
  307. package/dist/version.js +13 -0
  308. package/dist/version.js.map +1 -0
  309. package/dist/world/Environment.d.ts +35 -0
  310. package/dist/world/Environment.d.ts.map +1 -0
  311. package/dist/world/Environment.js +55 -0
  312. package/dist/world/Environment.js.map +1 -0
  313. package/dist/world/index.d.ts +2 -0
  314. package/dist/world/index.d.ts.map +1 -1
  315. package/dist/world/index.js +1 -0
  316. package/dist/world/index.js.map +1 -1
  317. package/package.json +40 -4
@@ -38,7 +38,7 @@ export declare class DialogueStage extends Container {
38
38
  private focused;
39
39
  private stageWidth;
40
40
  private stageHeight;
41
- private tweens;
41
+ private tweener;
42
42
  /** how far a character is darkened while someone else is speaking, 0 to 1 */
43
43
  dimAmount: number;
44
44
  constructor(width: number, height: number);
@@ -67,7 +67,6 @@ export declare class DialogueStage extends Container {
67
67
  private applyFocus;
68
68
  private slotOf;
69
69
  private placeActor;
70
- private tween;
71
70
  update(dt: number): void;
72
71
  /** true while a fade is running, so a script can wait for it */
73
72
  get isBusy(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"DialogueStage.d.ts","sourceRoot":"","sources":["../../src/stage/DialogueStage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,OAAO,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAW5E,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,WAAW,CAAC;IAEnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAUD;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC3C,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAA0C;IAE7D,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,MAAM,CAAe;IAE7B,6EAA6E;IAC7E,SAAS,SAAQ;IAEjB,YAAY,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAOxC;IAED,sEAAsE;IACtE,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAEjE;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ1C;IAED;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvD;IAED,OAAO,CAAC,WAAW;IASnB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCzD;IAED,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3C;IAED,OAAO,CAAC,IAAI,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAElC;IAED,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAWlD;IAED;;;;;OAKG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAG7B;IAED,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,KAAK;IAMb,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAcvB;IAED,gEAAgE;IAChE,IAAI,MAAM,IAAI,OAAO,CAEpB;CACD"}
1
+ {"version":3,"file":"DialogueStage.d.ts","sourceRoot":"","sources":["../../src/stage/DialogueStage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,OAAO,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAW5E,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,WAAW,CAAC;IAEnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAUD;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC3C,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAA0C;IAE7D,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,OAAO,CAAiB;IAEhC,6EAA6E;IAC7E,SAAS,SAAQ;IAEjB,YAAY,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAOxC;IAED,sEAAsE;IACtE,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAEjE;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ1C;IAED;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvD;IAED,OAAO,CAAC,WAAW;IASnB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCzD;IAED,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3C;IAED,OAAO,CAAC,IAAI,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAElC;IAED,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAWlD;IAED;;;;;OAKG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAG7B;IAED,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;IAWlB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEvB;IAED,gEAAgE;IAChE,IAAI,MAAM,IAAI,OAAO,CAEpB;CACD"}
@@ -1,4 +1,5 @@
1
1
  import { Container, Sprite, Texture } from 'pixi.js';
2
+ import { Tweener } from '../core/Tween.js';
2
3
  import { TintedSprite } from '../render/TintedSprite.js';
3
4
  /** where a slot sits, as a fraction of the stage width */
4
5
  const SLOTS = {
@@ -30,7 +31,7 @@ export class DialogueStage extends Container {
30
31
  this.actors = new Map();
31
32
  this.definitions = new Map();
32
33
  this.focused = null;
33
- this.tweens = [];
34
+ this.tweener = new Tweener();
34
35
  /** how far a character is darkened while someone else is speaking, 0 to 1 */
35
36
  this.dimAmount = 0.45;
36
37
  this.stageWidth = width;
@@ -80,7 +81,7 @@ export class DialogueStage extends Container {
80
81
  return Promise.resolve();
81
82
  }
82
83
  sprite.alpha = 0;
83
- return this.tween(fade, (t) => {
84
+ return this.tweener.tween(fade, (t) => {
84
85
  sprite.alpha = t;
85
86
  }).then(settle);
86
87
  }
@@ -122,7 +123,7 @@ export class DialogueStage extends Container {
122
123
  if (fade <= 0)
123
124
  return Promise.resolve();
124
125
  sprite.alpha = 0;
125
- return this.tween(fade, (t) => {
126
+ return this.tweener.tween(fade, (t) => {
126
127
  sprite.alpha = t;
127
128
  });
128
129
  }
@@ -138,7 +139,7 @@ export class DialogueStage extends Container {
138
139
  actor.sprite.destroy();
139
140
  return Promise.resolve();
140
141
  }
141
- return this.tween(fade, (t) => {
142
+ return this.tweener.tween(fade, (t) => {
142
143
  actor.sprite.alpha = 1 - t;
143
144
  }).then(() => actor.sprite.destroy());
144
145
  }
@@ -186,28 +187,12 @@ export class DialogueStage extends Container {
186
187
  //positioned by the feet, so characters of different heights stand on the same floor
187
188
  actor.sprite.y = Math.round((definition.baseline ?? 0.92) * this.stageHeight - wanted);
188
189
  }
189
- tween(duration, apply) {
190
- return new Promise((resolve) => {
191
- this.tweens.push({ elapsed: 0, duration, apply, resolve });
192
- });
193
- }
194
190
  update(dt) {
195
- if (this.tweens.length === 0)
196
- return;
197
- //iterate a copy: a tween's resolve may start another
198
- for (const tween of [...this.tweens]) {
199
- tween.elapsed += dt;
200
- const t = Math.min(1, tween.elapsed / tween.duration);
201
- tween.apply(t);
202
- if (t >= 1) {
203
- this.tweens.splice(this.tweens.indexOf(tween), 1);
204
- tween.resolve();
205
- }
206
- }
191
+ this.tweener.update(dt);
207
192
  }
208
193
  /** true while a fade is running, so a script can wait for it */
209
194
  get isBusy() {
210
- return this.tweens.length > 0;
195
+ return this.tweener.isBusy;
211
196
  }
212
197
  }
213
198
  //# sourceMappingURL=DialogueStage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DialogueStage.js","sourceRoot":"","sources":["../../src/stage/DialogueStage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DialogueStage.js","sourceRoot":"","sources":["../../src/stage/DialogueStage.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export { DialogueStage } from './DialogueStage.ts';
2
2
  export type { CharacterDefinition, ShowOptions, SlotName } from './DialogueStage.ts';
3
3
  export { StageScript } from './script.ts';
4
- export type { StageCommand, StageChoice, StoryScript, ScriptOptions, ScriptState } from './script.ts';
4
+ export type { StageCommand, StageChoice, StoryScript, ScriptOptions, ScriptState, HistoryEntry } from './script.ts';
5
5
  export { importTwee } from './twee.ts';
6
6
  export type { TwineStory } from './twee.ts';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -65,6 +65,13 @@ export interface ScriptState {
65
65
  /** whatever `ask` commands have stored, keyed by their `store` name */
66
66
  answers: Record<string, unknown>;
67
67
  }
68
+ /** one completed line, kept for `StageScript.history`/`showLast` */
69
+ export interface HistoryEntry {
70
+ text: string;
71
+ speaker?: string;
72
+ /** the value picked, when this line ended on choices; undefined for a plain line */
73
+ chosen?: unknown;
74
+ }
68
75
  export interface ScriptOptions {
69
76
  stage: DialogueStage;
70
77
  windows: WindowStack;
@@ -77,6 +84,8 @@ export interface ScriptOptions {
77
84
  boxHeight?: number;
78
85
  /** characters revealed per second */
79
86
  speed?: number;
87
+ /** `'adv'` (default) or `'nvl'`, `MessageBox`'s two display modes; see `MessageBoxOptions.mode` */
88
+ mode?: 'adv' | 'nvl';
80
89
  }
81
90
  /**
82
91
  * Runs a scene.
@@ -89,8 +98,27 @@ export declare class StageScript {
89
98
  private options;
90
99
  readonly state: ScriptState;
91
100
  private cancelled;
101
+ private historyLog;
102
+ private seenLines;
103
+ /**
104
+ * When true, a line whose exact text has already been shown once this script's lifetime
105
+ * reveals at once and advances on its own instead of waiting for `confirm` - common
106
+ * visual-novel "skip already-read text". A line with choices never skips: those always
107
+ * wait for a real answer.
108
+ */
109
+ skipSeen: boolean;
92
110
  constructor(options: ScriptOptions);
93
111
  cancel(): void;
112
+ /** every line completed so far, oldest first */
113
+ get history(): readonly HistoryEntry[];
114
+ /**
115
+ * Re-shows the most recently completed line for review: a player-facing "back" a game
116
+ * can wire to a button or a scroll gesture. This is read-only - it does not let a past
117
+ * choice be re-picked or replay any side effect (`show`/`hide`/`call`) around it, only
118
+ * the words themselves, the bounded and honestly-scoped half of "rollback" this offers.
119
+ * Resolves to `false` when there is nothing in `history` yet.
120
+ */
121
+ showLast(): Promise<boolean>;
94
122
  run(commands: readonly StageCommand[]): Promise<ScriptState>;
95
123
  /**
96
124
  * Runs a graph of passages starting at `start`, following `goto` commands and
@@ -99,6 +127,7 @@ export declare class StageScript {
99
127
  runStory(story: StoryScript, start: string): Promise<ScriptState>;
100
128
  /** runs one command; returns the passage to jump to, if the command jumps anywhere */
101
129
  private step;
130
+ private recordHistory;
102
131
  /**
103
132
  * Puts one line in front of the player and resolves with their answer.
104
133
  *
@@ -1 +1 @@
1
- {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/stage/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAClC,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC;AAElE,MAAM,WAAW,WAAW;IAC3B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IAErB,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAEpC,gFAAgF;IAChF,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAErC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,qBAAa,WAAW;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAmB;IAE9C,OAAO,CAAC,SAAS,CAAS;IAE1B,YAAY,OAAO,EAAE,aAAa,EAEjC;IAED,MAAM,IAAI,IAAI,CAEb;IAEK,GAAG,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CASjE;IAED;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAmBtE;IAED,sFAAsF;YACxE,IAAI;IA2DlB;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,CACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,OAAO,CAAC,CAyBlB;CACD"}
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/stage/script.ts"],"names":[],"mappings":"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"}
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/stage/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/stage/script.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { AnimationGroup } from '@babylonjs/core/Animations/animationGroup.js';
2
+ import type { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh.js';
3
+ import { TransformNode } from '@babylonjs/core/Meshes/transformNode.js';
4
+ import type { Scene } from '@babylonjs/core/scene.js';
5
+ export interface Billboard3DOptions {
6
+ /**
7
+ * An asset path (resolved through `mwg/assets`) or an already-resolved `data:`/`blob:`
8
+ * URI. A `data:` URI must be base64-encoded (`;base64,...`) - Babylon's texture loader
9
+ * does not decode a percent-encoded one and fails to load it without an error.
10
+ */
11
+ texture: string;
12
+ width?: number;
13
+ height?: number;
14
+ }
15
+ /**
16
+ * Moves either a billboard sprite or imported mesh through continuous 3D world space, and -
17
+ * for an imported mesh - plays back whichever animation clips came baked into it.
18
+ * `loadModel3D` already loads a glTF's own `animationGroups` as part of its import result;
19
+ * this is what turns one of them into something a game can actually trigger, the way a walk
20
+ * cycle baked into a mesh needs to be, rather than leaving them loaded but unreachable.
21
+ */
22
+ export declare class Character3D {
23
+ readonly node: TransformNode;
24
+ private target;
25
+ private speed;
26
+ private readonly animations;
27
+ private currentClip;
28
+ constructor(node: TransformNode, animations?: readonly AnimationGroup[]);
29
+ /** true when an animation clip of this name was imported with the model */
30
+ hasAnimation(name: string): boolean;
31
+ /**
32
+ * Plays an imported animation clip by name, stopping whichever one was already playing.
33
+ * A name the model has no clip for is a no-op, returning `false`, the same
34
+ * degrade-to-nothing `ActorAnimator`/`GridMover` already use for a missing animation
35
+ * rather than throwing over what is often just a naming mismatch between assets.
36
+ */
37
+ playAnimation(name: string, loop?: boolean): boolean;
38
+ /** stops whichever imported clip is currently playing, if any */
39
+ stopAnimation(): void;
40
+ /** the name of the clip currently playing, or null when none is */
41
+ get currentAnimation(): string | null;
42
+ moveTo(x: number, y: number, z: number, speed: number): void;
43
+ update(deltaSeconds: number): boolean;
44
+ /** @param animations typically `loadModel3D`'s own `animationGroups` result field */
45
+ static fromMesh(mesh: AbstractMesh, animations?: readonly AnimationGroup[]): Character3D;
46
+ static billboard(scene: Scene, options: Billboard3DOptions): Character3D;
47
+ }
48
+ //# sourceMappingURL=Character3D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Character3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Character3D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAKnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAItD,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD;;;;;;GAMG;AACH,qBAAa,WAAW;IACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,WAAW,CAA+B;IAElD,YAAY,IAAI,EAAE,aAAa,EAAE,UAAU,GAAE,SAAS,cAAc,EAAO,EAG1E;IAED,2EAA2E;IAC3E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,UAAO,GAAG,OAAO,CAWhD;IAED,iEAAiE;IACjE,aAAa,IAAI,IAAI,CAGpB;IAED,mEAAmE;IACnE,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3D;IAED,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAYpC;IAED,qFAAqF;IACrF,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,GAAE,SAAS,cAAc,EAAO,GAAG,WAAW,CAE3F;IAED,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAUvE;CACD"}
@@ -0,0 +1,96 @@
1
+ import { StandardMaterial } from '@babylonjs/core/Materials/standardMaterial.js';
2
+ import { Texture } from '@babylonjs/core/Materials/Textures/texture.js';
3
+ import { Vector3 } from '@babylonjs/core/Maths/math.vector.js';
4
+ import { CreatePlane } from '@babylonjs/core/Meshes/Builders/planeBuilder.pure.js';
5
+ import { Mesh } from '@babylonjs/core/Meshes/mesh.js';
6
+ import { TransformNode } from '@babylonjs/core/Meshes/transformNode.js';
7
+ import { resolve } from '../assets/index.js';
8
+ /** an asset path resolved via `mwg/assets`, or a URI passed through unchanged */
9
+ function resolveSource(source) {
10
+ return /^(?:data|blob|https?):/i.test(source) ? source : resolve(source);
11
+ }
12
+ /**
13
+ * Moves either a billboard sprite or imported mesh through continuous 3D world space, and -
14
+ * for an imported mesh - plays back whichever animation clips came baked into it.
15
+ * `loadModel3D` already loads a glTF's own `animationGroups` as part of its import result;
16
+ * this is what turns one of them into something a game can actually trigger, the way a walk
17
+ * cycle baked into a mesh needs to be, rather than leaving them loaded but unreachable.
18
+ */
19
+ export class Character3D {
20
+ constructor(node, animations = []) {
21
+ this.target = null;
22
+ this.speed = 0;
23
+ this.currentClip = null;
24
+ this.node = node;
25
+ this.animations = new Map(animations.map((group) => [group.name, group]));
26
+ }
27
+ /** true when an animation clip of this name was imported with the model */
28
+ hasAnimation(name) {
29
+ return this.animations.has(name);
30
+ }
31
+ /**
32
+ * Plays an imported animation clip by name, stopping whichever one was already playing.
33
+ * A name the model has no clip for is a no-op, returning `false`, the same
34
+ * degrade-to-nothing `ActorAnimator`/`GridMover` already use for a missing animation
35
+ * rather than throwing over what is often just a naming mismatch between assets.
36
+ */
37
+ playAnimation(name, loop = true) {
38
+ const clip = this.animations.get(name);
39
+ if (!clip)
40
+ return false;
41
+ if (this.currentClip === clip) {
42
+ if (!clip.isPlaying)
43
+ clip.start(loop);
44
+ return true;
45
+ }
46
+ this.currentClip?.stop();
47
+ clip.start(loop);
48
+ this.currentClip = clip;
49
+ return true;
50
+ }
51
+ /** stops whichever imported clip is currently playing, if any */
52
+ stopAnimation() {
53
+ this.currentClip?.stop();
54
+ this.currentClip = null;
55
+ }
56
+ /** the name of the clip currently playing, or null when none is */
57
+ get currentAnimation() {
58
+ return this.currentClip?.name ?? null;
59
+ }
60
+ moveTo(x, y, z, speed) {
61
+ if (!(speed > 0))
62
+ throw new Error('3D character speed must be positive');
63
+ this.target = new Vector3(x, y, z);
64
+ this.speed = speed;
65
+ }
66
+ update(deltaSeconds) {
67
+ if (!this.target)
68
+ return false;
69
+ const distance = Vector3.Distance(this.node.position, this.target);
70
+ if (distance <= this.speed * deltaSeconds) {
71
+ this.node.position.copyFrom(this.target);
72
+ this.target = null;
73
+ return false;
74
+ }
75
+ const direction = this.target.subtract(this.node.position).normalize();
76
+ this.node.position.addInPlace(direction.scale(this.speed * deltaSeconds));
77
+ this.node.rotation.y = Math.atan2(direction.x, direction.z);
78
+ return true;
79
+ }
80
+ /** @param animations typically `loadModel3D`'s own `animationGroups` result field */
81
+ static fromMesh(mesh, animations = []) {
82
+ return new Character3D(mesh, animations);
83
+ }
84
+ static billboard(scene, options) {
85
+ const plane = CreatePlane('billboard-character', { width: options.width ?? 1, height: options.height ?? 1.5 }, scene);
86
+ plane.billboardMode = Mesh.BILLBOARDMODE_Y;
87
+ const material = new StandardMaterial('billboard-material', scene);
88
+ material.diffuseTexture = new Texture(resolveSource(options.texture), scene);
89
+ material.diffuseTexture.hasAlpha = true;
90
+ material.useAlphaFromDiffuseTexture = true;
91
+ material.backFaceCulling = false;
92
+ plane.material = material;
93
+ return new Character3D(plane);
94
+ }
95
+ }
96
+ //# sourceMappingURL=Character3D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Character3D.js","sourceRoot":"","sources":["../../src/three-d/Character3D.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAEnF,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAGxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAa7C,iFAAiF;AACjF,SAAS,aAAa,CAAC,MAAc;IACpC,OAAO,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IAQvB,YAAY,IAAmB,EAAE,UAAU,GAA8B,EAAE;QANnE,WAAM,GAAmB,IAAI,CAAC;QAC9B,UAAK,GAAG,CAAC,CAAC;QAGV,gBAAW,GAA0B,IAAI,CAAC;QAGjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,2EAA2E;IAC3E,YAAY,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAY,EAAE,IAAI,GAAG,IAAI;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iEAAiE;IACjE,aAAa;QACZ,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,mEAAmE;IACnE,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa;QACpD,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,YAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,KAAK,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,qFAAqF;IACrF,MAAM,CAAC,QAAQ,CAAC,IAAkB,EAAE,UAAU,GAA8B,EAAE;QAC7E,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,OAA2B;QACzD,MAAM,KAAK,GAAG,WAAW,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACtH,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACnE,QAAQ,CAAC,cAAc,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7E,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxC,QAAQ,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAC3C,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACD"}
@@ -0,0 +1,23 @@
1
+ import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera.js';
2
+ import { Engine } from '@babylonjs/core/Engines/engine.js';
3
+ import { Scene } from '@babylonjs/core/scene.js';
4
+ export interface Engine3DOptions {
5
+ canvas: HTMLCanvasElement;
6
+ antialias?: boolean;
7
+ clearColor?: readonly [number, number, number, number?];
8
+ }
9
+ export type Frame3D = (deltaSeconds: number) => void;
10
+ /** Owns Babylon's WebGL engine, scene, default camera, lighting, and render loop. */
11
+ export declare class Engine3D {
12
+ readonly engine: Engine;
13
+ readonly scene: Scene;
14
+ readonly camera: ArcRotateCamera;
15
+ private frame;
16
+ private readonly resize;
17
+ constructor(options: Engine3DOptions);
18
+ start(frame?: Frame3D): void;
19
+ step(deltaSeconds: number): void;
20
+ stop(): void;
21
+ dispose(): void;
22
+ }
23
+ //# sourceMappingURL=Engine3D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Engine3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Engine3D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAI3D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;AAErD,qFAAqF;AACrF,qBAAa,QAAQ;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D,YAAY,OAAO,EAAE,eAAe,EAYnC;IAED,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAG3B;IAED,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAG/B;IAED,IAAI,IAAI,IAAI,CAEX;IAED,OAAO,IAAI,IAAI,CAOd;CACD"}
@@ -0,0 +1,45 @@
1
+ import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera.js';
2
+ import { Engine } from '@babylonjs/core/Engines/engine.js';
3
+ import { HemisphericLight } from '@babylonjs/core/Lights/hemisphericLight.js';
4
+ import { Color4 } from '@babylonjs/core/Maths/math.color.js';
5
+ import { Vector3 } from '@babylonjs/core/Maths/math.vector.js';
6
+ import { Scene } from '@babylonjs/core/scene.js';
7
+ /** Owns Babylon's WebGL engine, scene, default camera, lighting, and render loop. */
8
+ export class Engine3D {
9
+ constructor(options) {
10
+ this.frame = null;
11
+ this.resize = () => this.engine.resize();
12
+ this.engine = new Engine(options.canvas, options.antialias ?? true);
13
+ this.scene = new Scene(this.engine);
14
+ const color = options.clearColor ?? [0.04, 0.06, 0.09, 1];
15
+ this.scene.clearColor = new Color4(color[0], color[1], color[2], color[3] ?? 1);
16
+ this.camera = new ArcRotateCamera('camera', -Math.PI / 2, Math.PI / 3, 18, Vector3.Zero(), this.scene);
17
+ this.camera.lowerRadiusLimit = 3;
18
+ this.camera.upperRadiusLimit = 80;
19
+ this.camera.attachControl(options.canvas, true);
20
+ new HemisphericLight('ambient', new Vector3(0.3, 1, 0.2), this.scene).intensity = 0.9;
21
+ addEventListener('resize', this.resize);
22
+ globalThis.__MWG_3D__ = this;
23
+ }
24
+ start(frame) {
25
+ this.frame = frame ?? null;
26
+ this.engine.runRenderLoop(() => this.step(this.engine.getDeltaTime() / 1000));
27
+ }
28
+ step(deltaSeconds) {
29
+ this.frame?.(deltaSeconds);
30
+ this.scene.render();
31
+ }
32
+ stop() {
33
+ this.engine.stopRenderLoop();
34
+ }
35
+ dispose() {
36
+ this.stop();
37
+ removeEventListener('resize', this.resize);
38
+ this.scene.dispose();
39
+ this.engine.dispose();
40
+ const globals = globalThis;
41
+ if (globals.__MWG_3D__ === this)
42
+ delete globals.__MWG_3D__;
43
+ }
44
+ }
45
+ //# sourceMappingURL=Engine3D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Engine3D.js","sourceRoot":"","sources":["../../src/three-d/Engine3D.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type GridShape3D = 'square' | 'hex';
2
+ export interface GridCell3D {
3
+ x: number;
4
+ y: number;
5
+ height?: number;
6
+ }
7
+ export interface Point3D {
8
+ x: number;
9
+ y: number;
10
+ z: number;
11
+ }
12
+ /** Converts the framework's integer square or odd-q hex coordinate to 3D world space. */
13
+ export declare function gridPoint3D(shape: GridShape3D, x: number, y: number, tileSize?: number, height?: number, heightStep?: number): Point3D;
14
+ //# sourceMappingURL=Grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../src/three-d/Grid.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE3C,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAC1B,KAAK,EAAE,WAAW,EAClB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,SAAI,EACZ,MAAM,SAAI,EACV,UAAU,SAAI,GACZ,OAAO,CAQT"}
@@ -0,0 +1,13 @@
1
+ /** Converts the framework's integer square or odd-q hex coordinate to 3D world space. */
2
+ export function gridPoint3D(shape, x, y, tileSize = 1, height = 0, heightStep = 1) {
3
+ if (!(tileSize > 0) || !(heightStep > 0))
4
+ throw new Error('3D grid sizes must be positive');
5
+ if (shape === 'square')
6
+ return { x: x * tileSize, y: height * heightStep, z: y * tileSize };
7
+ return {
8
+ x: x * tileSize * 1.5,
9
+ y: height * heightStep,
10
+ z: (y + (x & 1) * 0.5) * Math.sqrt(3) * tileSize,
11
+ };
12
+ }
13
+ //# sourceMappingURL=Grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../src/three-d/Grid.ts"],"names":[],"mappings":"AAcA,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAC1B,KAAkB,EAClB,CAAS,EACT,CAAS,EACT,QAAQ,GAAG,CAAC,EACZ,MAAM,GAAG,CAAC,EACV,UAAU,GAAG,CAAC;IAEd,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC5F,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;IAC5F,OAAO;QACN,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,GAAG;QACrB,CAAC,EAAE,MAAM,GAAG,UAAU;QACtB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;KAChD,CAAC;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { GroundMesh } from '@babylonjs/core/Meshes/groundMesh.js';
2
+ import type { Scene } from '@babylonjs/core/scene.js';
3
+ /**
4
+ * Already-decoded pixel bytes, top-left origin, row-major, 4 bytes (RGBA) per pixel - a
5
+ * canvas `getImageData().data` is exactly this shape.
6
+ */
7
+ export interface HeightmapSource {
8
+ data: Uint8Array;
9
+ width: number;
10
+ height: number;
11
+ }
12
+ export interface HeightmapTerrain3DOptions {
13
+ /** world-space size along X; defaults to 10 */
14
+ width?: number;
15
+ /** world-space size along Z; defaults to 10 */
16
+ depth?: number;
17
+ /** vertices per side; defaults to one per source pixel along the shorter dimension */
18
+ subdivisions?: number;
19
+ minHeight?: number;
20
+ maxHeight?: number;
21
+ }
22
+ /**
23
+ * Builds a continuous mesh displaced by a greyscale heightmap - a different technique from
24
+ * `createTileGrid3D`'s discrete, per-cell elevation columns, for a game wanting rolling
25
+ * ground instead of stepped blocks.
26
+ *
27
+ * Takes already-decoded pixel bytes rather than a URL Babylon would fetch and decode
28
+ * itself, the same shape `parseVox` already takes raw bytes rather than a path: decoding an
29
+ * image is `mwg/assets`'/a game's own job (a loaded texture read back through a canvas, or
30
+ * any other decoder), keeping this module - like every other loader in `mwg/3d` - ignorant
31
+ * of where its bytes came from and safe to call from `file://` without touching the network
32
+ * itself.
33
+ */
34
+ export declare function createHeightmapTerrain3D(scene: Scene, source: HeightmapSource, options?: HeightmapTerrain3DOptions): GroundMesh;
35
+ //# sourceMappingURL=Heightmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Heightmap.d.ts","sourceRoot":"","sources":["../../src/three-d/Heightmap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACzC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,yBAA8B,GAAG,UAAU,CAmBnI"}
@@ -0,0 +1,29 @@
1
+ import { CreateGroundFromHeightMap } from '@babylonjs/core/Meshes/Builders/groundBuilder.pure.js';
2
+ /**
3
+ * Builds a continuous mesh displaced by a greyscale heightmap - a different technique from
4
+ * `createTileGrid3D`'s discrete, per-cell elevation columns, for a game wanting rolling
5
+ * ground instead of stepped blocks.
6
+ *
7
+ * Takes already-decoded pixel bytes rather than a URL Babylon would fetch and decode
8
+ * itself, the same shape `parseVox` already takes raw bytes rather than a path: decoding an
9
+ * image is `mwg/assets`'/a game's own job (a loaded texture read back through a canvas, or
10
+ * any other decoder), keeping this module - like every other loader in `mwg/3d` - ignorant
11
+ * of where its bytes came from and safe to call from `file://` without touching the network
12
+ * itself.
13
+ */
14
+ export function createHeightmapTerrain3D(scene, source, options = {}) {
15
+ if (!(source.width > 0) || !(source.height > 0))
16
+ throw new Error('heightmap source needs positive dimensions');
17
+ if (source.data.length < source.width * source.height * 4) {
18
+ throw new Error('heightmap source data is smaller than width * height * 4 (RGBA)');
19
+ }
20
+ return CreateGroundFromHeightMap('heightmap-terrain', { data: source.data, width: source.width, height: source.height }, {
21
+ width: options.width ?? 10,
22
+ height: options.depth ?? 10,
23
+ subdivisions: options.subdivisions ?? Math.max(1, Math.min(source.width, source.height) - 1),
24
+ minHeight: options.minHeight ?? 0,
25
+ maxHeight: options.maxHeight ?? 1,
26
+ updatable: false,
27
+ }, scene);
28
+ }
29
+ //# sourceMappingURL=Heightmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Heightmap.js","sourceRoot":"","sources":["../../src/three-d/Heightmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAyBlG;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAY,EAAE,MAAuB,EAAE,OAAO,GAA8B,EAAE;IACtH,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/G,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,yBAAyB,CAC/B,mBAAmB,EACnB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EACjE;QACC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC3B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5F,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;QACjC,SAAS,EAAE,KAAK;KAChB,EACD,KAAK,CACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import '@babylonjs/loaders/glTF/index.js';
2
+ import type { ImportMeshOptions, ISceneLoaderAsyncResult } from '@babylonjs/core/Loading/sceneLoader.js';
3
+ import type { Scene } from '@babylonjs/core/scene.js';
4
+ export type ModelSource3D = string | File | ArrayBufferView;
5
+ /**
6
+ * Loads glTF/GLB from an asset path, data/blob/http(s) URI, File, or in-memory byte view. An
7
+ * asset path is resolved through `mwg/assets` first, the same way every other loader in the
8
+ * framework becomes `file://`-safe once assets are compiled to `data:` URIs; a URI that is
9
+ * already resolved is passed through unchanged.
10
+ */
11
+ export declare function loadModel3D(source: ModelSource3D, scene: Scene, options?: ImportMeshOptions): Promise<ISceneLoaderAsyncResult>;
12
+ //# sourceMappingURL=Models.d.ts.map