@datamoc/mw_games 0.3.1 → 0.4.1

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 (770) hide show
  1. package/README.md +401 -395
  2. package/dist/actors/Advancement.d.ts +17 -0
  3. package/dist/actors/Advancement.d.ts.map +1 -1
  4. package/dist/actors/Advancement.js +17 -0
  5. package/dist/actors/Advancement.js.map +1 -1
  6. package/dist/actors/Affix.d.ts +46 -0
  7. package/dist/actors/Affix.d.ts.map +1 -1
  8. package/dist/actors/Affix.js +32 -1
  9. package/dist/actors/Affix.js.map +1 -1
  10. package/dist/actors/Appearances.d.ts +12 -0
  11. package/dist/actors/Appearances.d.ts.map +1 -1
  12. package/dist/actors/Appearances.js +12 -0
  13. package/dist/actors/Appearances.js.map +1 -1
  14. package/dist/actors/Aura.d.ts +16 -0
  15. package/dist/actors/Aura.d.ts.map +1 -1
  16. package/dist/actors/Aura.js +16 -0
  17. package/dist/actors/Aura.js.map +1 -1
  18. package/dist/actors/Barrier.d.ts +60 -0
  19. package/dist/actors/Barrier.d.ts.map +1 -0
  20. package/dist/actors/Barrier.js +70 -0
  21. package/dist/actors/Barrier.js.map +1 -0
  22. package/dist/actors/Charges.d.ts +35 -0
  23. package/dist/actors/Charges.d.ts.map +1 -1
  24. package/dist/actors/Charges.js +26 -0
  25. package/dist/actors/Charges.js.map +1 -1
  26. package/dist/actors/Equipment.d.ts +48 -0
  27. package/dist/actors/Equipment.d.ts.map +1 -1
  28. package/dist/actors/Equipment.js +51 -1
  29. package/dist/actors/Equipment.js.map +1 -1
  30. package/dist/actors/Inventory.d.ts +70 -3
  31. package/dist/actors/Inventory.d.ts.map +1 -1
  32. package/dist/actors/Inventory.js +109 -5
  33. package/dist/actors/Inventory.js.map +1 -1
  34. package/dist/actors/ItemState.d.ts +24 -2
  35. package/dist/actors/ItemState.d.ts.map +1 -1
  36. package/dist/actors/ItemState.js +31 -2
  37. package/dist/actors/ItemState.js.map +1 -1
  38. package/dist/actors/ItemStatusEffect.d.ts +13 -0
  39. package/dist/actors/ItemStatusEffect.d.ts.map +1 -1
  40. package/dist/actors/ItemStatusEffect.js +13 -0
  41. package/dist/actors/ItemStatusEffect.js.map +1 -1
  42. package/dist/actors/Loot.d.ts +15 -1
  43. package/dist/actors/Loot.d.ts.map +1 -1
  44. package/dist/actors/Loot.js +16 -2
  45. package/dist/actors/Loot.js.map +1 -1
  46. package/dist/actors/Progression.d.ts +23 -1
  47. package/dist/actors/Progression.d.ts.map +1 -1
  48. package/dist/actors/Progression.js +21 -1
  49. package/dist/actors/Progression.js.map +1 -1
  50. package/dist/actors/Resource.d.ts +30 -0
  51. package/dist/actors/Resource.d.ts.map +1 -1
  52. package/dist/actors/Resource.js +22 -0
  53. package/dist/actors/Resource.js.map +1 -1
  54. package/dist/actors/Scaling.d.ts +8 -0
  55. package/dist/actors/Scaling.d.ts.map +1 -1
  56. package/dist/actors/Scaling.js.map +1 -1
  57. package/dist/actors/Shop.d.ts +15 -0
  58. package/dist/actors/Shop.d.ts.map +1 -1
  59. package/dist/actors/Shop.js.map +1 -1
  60. package/dist/actors/SkillPoints.d.ts +27 -0
  61. package/dist/actors/SkillPoints.d.ts.map +1 -1
  62. package/dist/actors/SkillPoints.js +29 -0
  63. package/dist/actors/SkillPoints.js.map +1 -1
  64. package/dist/actors/StatBlock.d.ts +16 -0
  65. package/dist/actors/StatBlock.d.ts.map +1 -1
  66. package/dist/actors/StatBlock.js +21 -0
  67. package/dist/actors/StatBlock.js.map +1 -1
  68. package/dist/actors/StatusEffect.d.ts +18 -0
  69. package/dist/actors/StatusEffect.d.ts.map +1 -1
  70. package/dist/actors/StatusEffect.js +18 -0
  71. package/dist/actors/StatusEffect.js.map +1 -1
  72. package/dist/actors/Support.d.ts +13 -2
  73. package/dist/actors/Support.d.ts.map +1 -1
  74. package/dist/actors/Support.js +13 -2
  75. package/dist/actors/Support.js.map +1 -1
  76. package/dist/actors/Traits.d.ts +14 -0
  77. package/dist/actors/Traits.d.ts.map +1 -1
  78. package/dist/actors/Traits.js +14 -0
  79. package/dist/actors/Traits.js.map +1 -1
  80. package/dist/actors/craft.d.ts +16 -0
  81. package/dist/actors/craft.d.ts.map +1 -1
  82. package/dist/actors/craft.js +16 -0
  83. package/dist/actors/craft.js.map +1 -1
  84. package/dist/actors/index.d.ts +8 -5
  85. package/dist/actors/index.d.ts.map +1 -1
  86. package/dist/actors/index.js +3 -2
  87. package/dist/actors/index.js.map +1 -1
  88. package/dist/actors/skillCheck.d.ts +8 -0
  89. package/dist/actors/skillCheck.d.ts.map +1 -1
  90. package/dist/actors/skillCheck.js +8 -0
  91. package/dist/actors/skillCheck.js.map +1 -1
  92. package/dist/assets/ByteProgress.d.ts +37 -0
  93. package/dist/assets/ByteProgress.d.ts.map +1 -0
  94. package/dist/assets/ByteProgress.js +54 -0
  95. package/dist/assets/ByteProgress.js.map +1 -0
  96. package/dist/assets/Streaming.d.ts +11 -1
  97. package/dist/assets/Streaming.d.ts.map +1 -1
  98. package/dist/assets/Streaming.js +11 -1
  99. package/dist/assets/Streaming.js.map +1 -1
  100. package/dist/assets/index.d.ts +11 -52
  101. package/dist/assets/index.d.ts.map +1 -1
  102. package/dist/assets/index.js +9 -80
  103. package/dist/assets/index.js.map +1 -1
  104. package/dist/assets/loader.d.ts +45 -0
  105. package/dist/assets/loader.d.ts.map +1 -0
  106. package/dist/assets/loader.js +72 -0
  107. package/dist/assets/loader.js.map +1 -0
  108. package/dist/assets/paths.d.ts +50 -0
  109. package/dist/assets/paths.d.ts.map +1 -0
  110. package/dist/assets/paths.js +59 -0
  111. package/dist/assets/paths.js.map +1 -0
  112. package/dist/audio/Captions.d.ts +13 -1
  113. package/dist/audio/Captions.d.ts.map +1 -1
  114. package/dist/audio/Captions.js +13 -1
  115. package/dist/audio/Captions.js.map +1 -1
  116. package/dist/audio/Midi.d.ts +19 -1
  117. package/dist/audio/Midi.d.ts.map +1 -1
  118. package/dist/audio/Midi.js +19 -1
  119. package/dist/audio/Midi.js.map +1 -1
  120. package/dist/audio/Music.d.ts +11 -0
  121. package/dist/audio/Music.d.ts.map +1 -1
  122. package/dist/audio/Music.js +11 -0
  123. package/dist/audio/Music.js.map +1 -1
  124. package/dist/audio/Orchestrator.d.ts +14 -0
  125. package/dist/audio/Orchestrator.d.ts.map +1 -1
  126. package/dist/audio/Orchestrator.js +14 -0
  127. package/dist/audio/Orchestrator.js.map +1 -1
  128. package/dist/audio/Playable.d.ts +11 -1
  129. package/dist/audio/Playable.d.ts.map +1 -1
  130. package/dist/audio/Playable.js +12 -2
  131. package/dist/audio/Playable.js.map +1 -1
  132. package/dist/audio/Sound.d.ts +8 -0
  133. package/dist/audio/Sound.d.ts.map +1 -1
  134. package/dist/audio/Sound.js +8 -0
  135. package/dist/audio/Sound.js.map +1 -1
  136. package/dist/audio/Synth.d.ts +15 -0
  137. package/dist/audio/Synth.d.ts.map +1 -1
  138. package/dist/audio/Synth.js +15 -0
  139. package/dist/audio/Synth.js.map +1 -1
  140. package/dist/battle/BattleAI.d.ts +18 -2
  141. package/dist/battle/BattleAI.d.ts.map +1 -1
  142. package/dist/battle/BattleAI.js +18 -2
  143. package/dist/battle/BattleAI.js.map +1 -1
  144. package/dist/battle/Evolution.d.ts +12 -0
  145. package/dist/battle/Evolution.d.ts.map +1 -1
  146. package/dist/battle/Evolution.js +12 -0
  147. package/dist/battle/Evolution.js.map +1 -1
  148. package/dist/battle/Field.d.ts +13 -2
  149. package/dist/battle/Field.d.ts.map +1 -1
  150. package/dist/battle/Field.js +3 -3
  151. package/dist/battle/Field.js.map +1 -1
  152. package/dist/battle/Hooks.d.ts +23 -13
  153. package/dist/battle/Hooks.d.ts.map +1 -1
  154. package/dist/battle/Hooks.js +36 -18
  155. package/dist/battle/Hooks.js.map +1 -1
  156. package/dist/battle/Move.d.ts +13 -0
  157. package/dist/battle/Move.d.ts.map +1 -1
  158. package/dist/battle/Move.js +13 -0
  159. package/dist/battle/Move.js.map +1 -1
  160. package/dist/battle/Party.d.ts +11 -0
  161. package/dist/battle/Party.d.ts.map +1 -1
  162. package/dist/battle/Party.js +11 -0
  163. package/dist/battle/Party.js.map +1 -1
  164. package/dist/battle/Species.d.ts +10 -0
  165. package/dist/battle/Species.d.ts.map +1 -1
  166. package/dist/battle/Species.js +10 -0
  167. package/dist/battle/Species.js.map +1 -1
  168. package/dist/battle/StatStages.d.ts +14 -0
  169. package/dist/battle/StatStages.d.ts.map +1 -1
  170. package/dist/battle/StatStages.js.map +1 -1
  171. package/dist/battle/TypeMatrix.d.ts +11 -0
  172. package/dist/battle/TypeMatrix.d.ts.map +1 -1
  173. package/dist/battle/TypeMatrix.js +11 -0
  174. package/dist/battle/TypeMatrix.js.map +1 -1
  175. package/dist/core/Achievements.d.ts +15 -0
  176. package/dist/core/Achievements.d.ts.map +1 -1
  177. package/dist/core/Achievements.js +15 -0
  178. package/dist/core/Achievements.js.map +1 -1
  179. package/dist/core/Collection.d.ts +12 -0
  180. package/dist/core/Collection.d.ts.map +1 -1
  181. package/dist/core/Collection.js +12 -0
  182. package/dist/core/Collection.js.map +1 -1
  183. package/dist/core/Entity.d.ts +42 -0
  184. package/dist/core/Entity.d.ts.map +1 -0
  185. package/dist/core/Entity.js +47 -0
  186. package/dist/core/Entity.js.map +1 -0
  187. package/dist/core/Feedback.d.ts +11 -1
  188. package/dist/core/Feedback.d.ts.map +1 -1
  189. package/dist/core/Feedback.js +11 -1
  190. package/dist/core/Feedback.js.map +1 -1
  191. package/dist/core/Hex.d.ts +14 -0
  192. package/dist/core/Hex.d.ts.map +1 -1
  193. package/dist/core/Hex.js +14 -0
  194. package/dist/core/Hex.js.map +1 -1
  195. package/dist/core/Hooks.d.ts +48 -0
  196. package/dist/core/Hooks.d.ts.map +1 -0
  197. package/dist/core/Hooks.js +33 -0
  198. package/dist/core/Hooks.js.map +1 -0
  199. package/dist/core/Input.d.ts +53 -0
  200. package/dist/core/Input.d.ts.map +1 -1
  201. package/dist/core/Input.js +126 -21
  202. package/dist/core/Input.js.map +1 -1
  203. package/dist/core/Loading.d.ts +17 -0
  204. package/dist/core/Loading.d.ts.map +1 -1
  205. package/dist/core/Loading.js +17 -0
  206. package/dist/core/Loading.js.map +1 -1
  207. package/dist/core/Log.d.ts +9 -0
  208. package/dist/core/Log.d.ts.map +1 -1
  209. package/dist/core/Log.js +9 -0
  210. package/dist/core/Log.js.map +1 -1
  211. package/dist/core/Multiplayer.d.ts +12 -0
  212. package/dist/core/Multiplayer.d.ts.map +1 -1
  213. package/dist/core/Multiplayer.js +12 -0
  214. package/dist/core/Multiplayer.js.map +1 -1
  215. package/dist/core/News.d.ts +12 -0
  216. package/dist/core/News.d.ts.map +1 -1
  217. package/dist/core/News.js.map +1 -1
  218. package/dist/core/PlayerInput.d.ts +19 -0
  219. package/dist/core/PlayerInput.d.ts.map +1 -1
  220. package/dist/core/PlayerInput.js +25 -0
  221. package/dist/core/PlayerInput.js.map +1 -1
  222. package/dist/core/Presentation.d.ts +56 -0
  223. package/dist/core/Presentation.d.ts.map +1 -0
  224. package/dist/core/Presentation.js +78 -0
  225. package/dist/core/Presentation.js.map +1 -0
  226. package/dist/core/Random.d.ts +38 -5
  227. package/dist/core/Random.d.ts.map +1 -1
  228. package/dist/core/Random.js +38 -5
  229. package/dist/core/Random.js.map +1 -1
  230. package/dist/core/Replay.d.ts +31 -0
  231. package/dist/core/Replay.d.ts.map +1 -1
  232. package/dist/core/Replay.js +31 -0
  233. package/dist/core/Replay.js.map +1 -1
  234. package/dist/core/RunHistory.d.ts +12 -0
  235. package/dist/core/RunHistory.d.ts.map +1 -1
  236. package/dist/core/RunHistory.js.map +1 -1
  237. package/dist/core/Sanitize.d.ts +18 -0
  238. package/dist/core/Sanitize.d.ts.map +1 -1
  239. package/dist/core/Sanitize.js +18 -0
  240. package/dist/core/Sanitize.js.map +1 -1
  241. package/dist/core/Save.d.ts.map +1 -1
  242. package/dist/core/Save.js +13 -0
  243. package/dist/core/Save.js.map +1 -1
  244. package/dist/core/SaveSync.d.ts +14 -0
  245. package/dist/core/SaveSync.d.ts.map +1 -1
  246. package/dist/core/SaveSync.js.map +1 -1
  247. package/dist/core/Scene.d.ts +29 -6
  248. package/dist/core/Scene.d.ts.map +1 -1
  249. package/dist/core/Scene.js +31 -6
  250. package/dist/core/Scene.js.map +1 -1
  251. package/dist/core/SceneStack.d.ts +28 -4
  252. package/dist/core/SceneStack.d.ts.map +1 -1
  253. package/dist/core/SceneStack.js +24 -0
  254. package/dist/core/SceneStack.js.map +1 -1
  255. package/dist/core/Scramble.d.ts +8 -0
  256. package/dist/core/Scramble.d.ts.map +1 -1
  257. package/dist/core/Scramble.js +8 -0
  258. package/dist/core/Scramble.js.map +1 -1
  259. package/dist/core/Session.d.ts +10 -0
  260. package/dist/core/Session.d.ts.map +1 -1
  261. package/dist/core/Session.js.map +1 -1
  262. package/dist/core/Signal.d.ts +11 -0
  263. package/dist/core/Signal.d.ts.map +1 -1
  264. package/dist/core/Signal.js.map +1 -1
  265. package/dist/core/Spawner.d.ts +17 -0
  266. package/dist/core/Spawner.d.ts.map +1 -1
  267. package/dist/core/Spawner.js +17 -0
  268. package/dist/core/Spawner.js.map +1 -1
  269. package/dist/core/Stats.d.ts +14 -0
  270. package/dist/core/Stats.d.ts.map +1 -1
  271. package/dist/core/Stats.js +14 -0
  272. package/dist/core/Stats.js.map +1 -1
  273. package/dist/core/Telemetry.d.ts +11 -0
  274. package/dist/core/Telemetry.d.ts.map +1 -1
  275. package/dist/core/Telemetry.js +11 -0
  276. package/dist/core/Telemetry.js.map +1 -1
  277. package/dist/core/Tween.d.ts +16 -1
  278. package/dist/core/Tween.d.ts.map +1 -1
  279. package/dist/core/Tween.js +16 -1
  280. package/dist/core/Tween.js.map +1 -1
  281. package/dist/core/UndoHistory.d.ts +15 -0
  282. package/dist/core/UndoHistory.d.ts.map +1 -1
  283. package/dist/core/UndoHistory.js.map +1 -1
  284. package/dist/core/index.d.ts +7 -2
  285. package/dist/core/index.d.ts.map +1 -1
  286. package/dist/core/index.js +3 -1
  287. package/dist/core/index.js.map +1 -1
  288. package/dist/i18n/Format.d.ts +25 -0
  289. package/dist/i18n/Format.d.ts.map +1 -0
  290. package/dist/i18n/Format.js +32 -0
  291. package/dist/i18n/Format.js.map +1 -0
  292. package/dist/i18n/SemanticMessage.d.ts +71 -0
  293. package/dist/i18n/SemanticMessage.d.ts.map +1 -0
  294. package/dist/i18n/SemanticMessage.js +40 -0
  295. package/dist/i18n/SemanticMessage.js.map +1 -0
  296. package/dist/i18n/Validate.d.ts +56 -0
  297. package/dist/i18n/Validate.d.ts.map +1 -0
  298. package/dist/i18n/Validate.js +65 -0
  299. package/dist/i18n/Validate.js.map +1 -0
  300. package/dist/i18n/index.d.ts +39 -0
  301. package/dist/i18n/index.d.ts.map +1 -1
  302. package/dist/i18n/index.js +48 -1
  303. package/dist/i18n/index.js.map +1 -1
  304. package/dist/index.d.ts +4 -5
  305. package/dist/index.d.ts.map +1 -1
  306. package/dist/index.js +4 -5
  307. package/dist/index.js.map +1 -1
  308. package/dist/mw_games.global.js +153 -88
  309. package/dist/roguelike/Blob.d.ts +11 -0
  310. package/dist/roguelike/Blob.d.ts.map +1 -1
  311. package/dist/roguelike/Blob.js +11 -0
  312. package/dist/roguelike/Blob.js.map +1 -1
  313. package/dist/roguelike/Boss.d.ts +16 -4
  314. package/dist/roguelike/Boss.d.ts.map +1 -1
  315. package/dist/roguelike/Boss.js +18 -6
  316. package/dist/roguelike/Boss.js.map +1 -1
  317. package/dist/roguelike/Combat.d.ts +23 -11
  318. package/dist/roguelike/Combat.d.ts.map +1 -1
  319. package/dist/roguelike/Combat.js +22 -16
  320. package/dist/roguelike/Combat.js.map +1 -1
  321. package/dist/roguelike/ContentRoll.d.ts +53 -0
  322. package/dist/roguelike/ContentRoll.d.ts.map +1 -0
  323. package/dist/roguelike/ContentRoll.js +48 -0
  324. package/dist/roguelike/ContentRoll.js.map +1 -0
  325. package/dist/roguelike/Doors.d.ts +13 -0
  326. package/dist/roguelike/Doors.d.ts.map +1 -1
  327. package/dist/roguelike/Doors.js +13 -0
  328. package/dist/roguelike/Doors.js.map +1 -1
  329. package/dist/roguelike/DungeonParity.d.ts +57 -0
  330. package/dist/roguelike/DungeonParity.d.ts.map +1 -0
  331. package/dist/roguelike/DungeonParity.js +78 -0
  332. package/dist/roguelike/DungeonParity.js.map +1 -0
  333. package/dist/roguelike/Elevation.d.ts +15 -0
  334. package/dist/roguelike/Elevation.d.ts.map +1 -1
  335. package/dist/roguelike/Elevation.js +15 -0
  336. package/dist/roguelike/Elevation.js.map +1 -1
  337. package/dist/roguelike/Features.d.ts +59 -0
  338. package/dist/roguelike/Features.d.ts.map +1 -0
  339. package/dist/roguelike/Features.js +76 -0
  340. package/dist/roguelike/Features.js.map +1 -0
  341. package/dist/roguelike/FieldOfView.d.ts +13 -0
  342. package/dist/roguelike/FieldOfView.d.ts.map +1 -1
  343. package/dist/roguelike/FieldOfView.js +13 -0
  344. package/dist/roguelike/FieldOfView.js.map +1 -1
  345. package/dist/roguelike/Level.d.ts +26 -1
  346. package/dist/roguelike/Level.d.ts.map +1 -1
  347. package/dist/roguelike/Level.js +26 -1
  348. package/dist/roguelike/Level.js.map +1 -1
  349. package/dist/roguelike/MonsterAI.d.ts +14 -0
  350. package/dist/roguelike/MonsterAI.d.ts.map +1 -1
  351. package/dist/roguelike/MonsterAI.js +15 -1
  352. package/dist/roguelike/MonsterAI.js.map +1 -1
  353. package/dist/roguelike/MultiStageAbility.d.ts +59 -0
  354. package/dist/roguelike/MultiStageAbility.d.ts.map +1 -0
  355. package/dist/roguelike/MultiStageAbility.js +76 -0
  356. package/dist/roguelike/MultiStageAbility.js.map +1 -0
  357. package/dist/roguelike/Pathfinder.d.ts +23 -2
  358. package/dist/roguelike/Pathfinder.d.ts.map +1 -1
  359. package/dist/roguelike/Pathfinder.js +23 -2
  360. package/dist/roguelike/Pathfinder.js.map +1 -1
  361. package/dist/roguelike/RoomBuilders.d.ts +60 -0
  362. package/dist/roguelike/RoomBuilders.d.ts.map +1 -0
  363. package/dist/roguelike/RoomBuilders.js +57 -0
  364. package/dist/roguelike/RoomBuilders.js.map +1 -0
  365. package/dist/roguelike/Scheduler.d.ts +48 -1
  366. package/dist/roguelike/Scheduler.d.ts.map +1 -1
  367. package/dist/roguelike/Scheduler.js +58 -1
  368. package/dist/roguelike/Scheduler.js.map +1 -1
  369. package/dist/roguelike/Secrets.d.ts +13 -0
  370. package/dist/roguelike/Secrets.d.ts.map +1 -1
  371. package/dist/roguelike/Secrets.js +13 -0
  372. package/dist/roguelike/Secrets.js.map +1 -1
  373. package/dist/roguelike/Stealth.d.ts +13 -0
  374. package/dist/roguelike/Stealth.d.ts.map +1 -1
  375. package/dist/roguelike/Stealth.js +13 -0
  376. package/dist/roguelike/Stealth.js.map +1 -1
  377. package/dist/roguelike/Targeting.d.ts +67 -1
  378. package/dist/roguelike/Targeting.d.ts.map +1 -1
  379. package/dist/roguelike/Targeting.js +53 -1
  380. package/dist/roguelike/Targeting.js.map +1 -1
  381. package/dist/roguelike/TriggerTracker.d.ts +46 -0
  382. package/dist/roguelike/TriggerTracker.d.ts.map +1 -0
  383. package/dist/roguelike/TriggerTracker.js +59 -0
  384. package/dist/roguelike/TriggerTracker.js.map +1 -0
  385. package/dist/roguelike/generate.d.ts +90 -1
  386. package/dist/roguelike/generate.d.ts.map +1 -1
  387. package/dist/roguelike/generate.js +79 -11
  388. package/dist/roguelike/generate.js.map +1 -1
  389. package/dist/roguelike/index.d.ts +17 -5
  390. package/dist/roguelike/index.d.ts.map +1 -1
  391. package/dist/roguelike/index.js +8 -2
  392. package/dist/roguelike/index.js.map +1 -1
  393. package/dist/rpg/Collision.d.ts +19 -0
  394. package/dist/rpg/Collision.d.ts.map +1 -1
  395. package/dist/rpg/Collision.js +19 -0
  396. package/dist/rpg/Collision.js.map +1 -1
  397. package/dist/rpg/Event.d.ts +17 -0
  398. package/dist/rpg/Event.d.ts.map +1 -1
  399. package/dist/rpg/Event.js +17 -0
  400. package/dist/rpg/Event.js.map +1 -1
  401. package/dist/rpg/EventRunner.d.ts +44 -8
  402. package/dist/rpg/EventRunner.d.ts.map +1 -1
  403. package/dist/rpg/EventRunner.js +15 -13
  404. package/dist/rpg/EventRunner.js.map +1 -1
  405. package/dist/rpg/FreeMover.d.ts +16 -2
  406. package/dist/rpg/FreeMover.d.ts.map +1 -1
  407. package/dist/rpg/FreeMover.js +19 -5
  408. package/dist/rpg/FreeMover.js.map +1 -1
  409. package/dist/rpg/GameState.d.ts +14 -0
  410. package/dist/rpg/GameState.d.ts.map +1 -1
  411. package/dist/rpg/GameState.js +14 -0
  412. package/dist/rpg/GameState.js.map +1 -1
  413. package/dist/rpg/GridMover.d.ts +16 -2
  414. package/dist/rpg/GridMover.d.ts.map +1 -1
  415. package/dist/rpg/GridMover.js +19 -5
  416. package/dist/rpg/GridMover.js.map +1 -1
  417. package/dist/rpg/Marshal.d.ts +16 -0
  418. package/dist/rpg/Marshal.d.ts.map +1 -1
  419. package/dist/rpg/Marshal.js +16 -0
  420. package/dist/rpg/Marshal.js.map +1 -1
  421. package/dist/rpg/MovableSprite.d.ts +25 -0
  422. package/dist/rpg/MovableSprite.d.ts.map +1 -0
  423. package/dist/rpg/MovableSprite.js +2 -0
  424. package/dist/rpg/MovableSprite.js.map +1 -0
  425. package/dist/rpg/Quest.d.ts +21 -1
  426. package/dist/rpg/Quest.d.ts.map +1 -1
  427. package/dist/rpg/Quest.js +21 -1
  428. package/dist/rpg/Quest.js.map +1 -1
  429. package/dist/rpg/automap.d.ts +39 -2
  430. package/dist/rpg/automap.d.ts.map +1 -1
  431. package/dist/rpg/automap.js +24 -1
  432. package/dist/rpg/automap.js.map +1 -1
  433. package/dist/rpg/index.d.ts +4 -4
  434. package/dist/rpg/index.d.ts.map +1 -1
  435. package/dist/rpg/index.js +1 -1
  436. package/dist/rpg/index.js.map +1 -1
  437. package/dist/simulation/Runtime.d.ts +98 -0
  438. package/dist/simulation/Runtime.d.ts.map +1 -0
  439. package/dist/simulation/Runtime.js +91 -0
  440. package/dist/simulation/Runtime.js.map +1 -0
  441. package/dist/simulation/Scenario.d.ts +15 -0
  442. package/dist/simulation/Scenario.d.ts.map +1 -1
  443. package/dist/simulation/Scenario.js +15 -0
  444. package/dist/simulation/Scenario.js.map +1 -1
  445. package/dist/simulation/Turns.d.ts +11 -0
  446. package/dist/simulation/Turns.d.ts.map +1 -1
  447. package/dist/simulation/Turns.js +11 -0
  448. package/dist/simulation/Turns.js.map +1 -1
  449. package/dist/simulation/index.d.ts +10 -0
  450. package/dist/simulation/index.d.ts.map +1 -1
  451. package/dist/simulation/index.js +8 -0
  452. package/dist/simulation/index.js.map +1 -1
  453. package/dist/three-d/Character3D.d.ts +26 -1
  454. package/dist/three-d/Character3D.d.ts.map +1 -1
  455. package/dist/three-d/Character3D.js +31 -14
  456. package/dist/three-d/Character3D.js.map +1 -1
  457. package/dist/three-d/Collision3D.d.ts +63 -0
  458. package/dist/three-d/Collision3D.d.ts.map +1 -0
  459. package/dist/three-d/Collision3D.js +75 -0
  460. package/dist/three-d/Collision3D.js.map +1 -0
  461. package/dist/three-d/Models.js +1 -1
  462. package/dist/three-d/index.d.ts +3 -1
  463. package/dist/three-d/index.d.ts.map +1 -1
  464. package/dist/three-d/index.js +1 -0
  465. package/dist/three-d/index.js.map +1 -1
  466. package/dist/{core → two-d}/Game.d.ts +15 -17
  467. package/dist/two-d/Game.d.ts.map +1 -0
  468. package/dist/{core → two-d}/Game.js +3 -3
  469. package/dist/two-d/Game.js.map +1 -0
  470. package/dist/two-d/Scene2D.d.ts +19 -0
  471. package/dist/two-d/Scene2D.d.ts.map +1 -0
  472. package/dist/two-d/Scene2D.js +23 -0
  473. package/dist/two-d/Scene2D.js.map +1 -0
  474. package/dist/two-d/index.d.ts +20 -0
  475. package/dist/two-d/index.d.ts.map +1 -0
  476. package/dist/two-d/index.js +18 -0
  477. package/dist/two-d/index.js.map +1 -0
  478. package/dist/two-d/pixi-interop.d.ts +13 -0
  479. package/dist/two-d/pixi-interop.d.ts.map +1 -0
  480. package/dist/two-d/pixi-interop.js +12 -0
  481. package/dist/two-d/pixi-interop.js.map +1 -0
  482. package/dist/two-d/render/ActorAnimator.d.ts.map +1 -0
  483. package/dist/two-d/render/ActorAnimator.js.map +1 -0
  484. package/dist/{render → two-d/render}/AnimatedSprite.d.ts +4 -4
  485. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -0
  486. package/dist/two-d/render/AnimatedSprite.js.map +1 -0
  487. package/dist/two-d/render/Autotile.d.ts.map +1 -0
  488. package/dist/two-d/render/Autotile.js.map +1 -0
  489. package/dist/two-d/render/Camera.d.ts.map +1 -0
  490. package/dist/{render → two-d/render}/Camera.js +2 -2
  491. package/dist/two-d/render/Camera.js.map +1 -0
  492. package/dist/two-d/render/Capabilities.d.ts.map +1 -0
  493. package/dist/two-d/render/Capabilities.js.map +1 -0
  494. package/dist/two-d/render/ColorBlindness.d.ts.map +1 -0
  495. package/dist/two-d/render/ColorBlindness.js.map +1 -0
  496. package/dist/{render → two-d/render}/ColorTransformBatcher.d.ts +8 -3
  497. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -0
  498. package/dist/{render → two-d/render}/ColorTransformBatcher.js +11 -5
  499. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -0
  500. package/dist/{render → two-d/render}/LayeredSprite.d.ts +3 -3
  501. package/dist/two-d/render/LayeredSprite.d.ts.map +1 -0
  502. package/dist/two-d/render/LayeredSprite.js.map +1 -0
  503. package/dist/two-d/render/Minimap.d.ts.map +1 -0
  504. package/dist/{render → two-d/render}/Minimap.js +1 -1
  505. package/dist/two-d/render/Minimap.js.map +1 -0
  506. package/dist/two-d/render/Particles.d.ts +109 -0
  507. package/dist/two-d/render/Particles.d.ts.map +1 -0
  508. package/dist/two-d/render/Particles.js +178 -0
  509. package/dist/two-d/render/Particles.js.map +1 -0
  510. package/dist/two-d/render/Projectile.d.ts.map +1 -0
  511. package/dist/two-d/render/Projectile.js.map +1 -0
  512. package/dist/two-d/render/ScreenEffects.d.ts +71 -0
  513. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -0
  514. package/dist/two-d/render/ScreenEffects.js +133 -0
  515. package/dist/two-d/render/ScreenEffects.js.map +1 -0
  516. package/dist/two-d/render/Shape2D.d.ts +40 -0
  517. package/dist/two-d/render/Shape2D.d.ts.map +1 -0
  518. package/dist/two-d/render/Shape2D.js +40 -0
  519. package/dist/two-d/render/Shape2D.js.map +1 -0
  520. package/dist/{render → two-d/render}/SpriteSheet.d.ts +9 -6
  521. package/dist/two-d/render/SpriteSheet.d.ts.map +1 -0
  522. package/dist/{render → two-d/render}/SpriteSheet.js +8 -1
  523. package/dist/two-d/render/SpriteSheet.js.map +1 -0
  524. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -0
  525. package/dist/two-d/render/StatusVisuals.js.map +1 -0
  526. package/dist/two-d/render/TileMap.d.ts.map +1 -0
  527. package/dist/{render → two-d/render}/TileMap.js +1 -1
  528. package/dist/two-d/render/TileMap.js.map +1 -0
  529. package/dist/{rpg → two-d/render}/TiledMap.d.ts +2 -2
  530. package/dist/two-d/render/TiledMap.d.ts.map +1 -0
  531. package/dist/{rpg → two-d/render}/TiledMap.js +2 -2
  532. package/dist/two-d/render/TiledMap.js.map +1 -0
  533. package/dist/{render → two-d/render}/TintedSprite.d.ts +3 -2
  534. package/dist/two-d/render/TintedSprite.d.ts.map +1 -0
  535. package/dist/{render → two-d/render}/TintedSprite.js +5 -1
  536. package/dist/two-d/render/TintedSprite.js.map +1 -0
  537. package/dist/two-d/render/Types2D.d.ts +27 -0
  538. package/dist/two-d/render/Types2D.d.ts.map +1 -0
  539. package/dist/two-d/render/Types2D.js +6 -0
  540. package/dist/two-d/render/Types2D.js.map +1 -0
  541. package/dist/two-d/render/Viewport.d.ts.map +1 -0
  542. package/dist/two-d/render/Viewport.js.map +1 -0
  543. package/dist/{render → two-d/render}/index.d.ts +9 -0
  544. package/dist/two-d/render/index.d.ts.map +1 -0
  545. package/dist/{render → two-d/render}/index.js +5 -0
  546. package/dist/two-d/render/index.js.map +1 -0
  547. package/dist/{stage → two-d/stage}/DialogueStage.d.ts +16 -0
  548. package/dist/two-d/stage/DialogueStage.d.ts.map +1 -0
  549. package/dist/{stage → two-d/stage}/DialogueStage.js +17 -1
  550. package/dist/two-d/stage/DialogueStage.js.map +1 -0
  551. package/dist/two-d/stage/index.d.ts.map +1 -0
  552. package/dist/two-d/stage/index.js.map +1 -0
  553. package/dist/{stage → two-d/stage}/script.d.ts +20 -0
  554. package/dist/two-d/stage/script.d.ts.map +1 -0
  555. package/dist/{stage → two-d/stage}/script.js +0 -0
  556. package/dist/two-d/stage/script.js.map +1 -0
  557. package/dist/{stage → two-d/stage}/twee.d.ts +11 -0
  558. package/dist/two-d/stage/twee.d.ts.map +1 -0
  559. package/dist/{stage → two-d/stage}/twee.js +11 -0
  560. package/dist/two-d/stage/twee.js.map +1 -0
  561. package/dist/two-d/ui/Bar.d.ts.map +1 -0
  562. package/dist/two-d/ui/Bar.js.map +1 -0
  563. package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -0
  564. package/dist/two-d/ui/BitmapLabel.js.map +1 -0
  565. package/dist/{ui → two-d/ui}/Button.d.ts +11 -4
  566. package/dist/two-d/ui/Button.d.ts.map +1 -0
  567. package/dist/{ui → two-d/ui}/Button.js +20 -4
  568. package/dist/two-d/ui/Button.js.map +1 -0
  569. package/dist/two-d/ui/EventDialogue.d.ts +23 -0
  570. package/dist/two-d/ui/EventDialogue.d.ts.map +1 -0
  571. package/dist/two-d/ui/EventDialogue.js +27 -0
  572. package/dist/two-d/ui/EventDialogue.js.map +1 -0
  573. package/dist/two-d/ui/FloatingText.d.ts.map +1 -0
  574. package/dist/two-d/ui/FloatingText.js.map +1 -0
  575. package/dist/{ui → two-d/ui}/HelpScreen.d.ts +1 -1
  576. package/dist/two-d/ui/HelpScreen.d.ts.map +1 -0
  577. package/dist/two-d/ui/HelpScreen.js.map +1 -0
  578. package/dist/{ui → two-d/ui}/IconGrid.d.ts +3 -2
  579. package/dist/two-d/ui/IconGrid.d.ts.map +1 -0
  580. package/dist/two-d/ui/IconGrid.js.map +1 -0
  581. package/dist/two-d/ui/Label.d.ts.map +1 -0
  582. package/dist/two-d/ui/Label.js.map +1 -0
  583. package/dist/{ui → two-d/ui}/ListView.d.ts +3 -2
  584. package/dist/two-d/ui/ListView.d.ts.map +1 -0
  585. package/dist/two-d/ui/ListView.js.map +1 -0
  586. package/dist/{ui → two-d/ui}/LoadingScreen.d.ts +1 -1
  587. package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -0
  588. package/dist/two-d/ui/LoadingScreen.js.map +1 -0
  589. package/dist/{ui → two-d/ui}/MessageBox.d.ts +1 -1
  590. package/dist/two-d/ui/MessageBox.d.ts.map +1 -0
  591. package/dist/two-d/ui/MessageBox.js.map +1 -0
  592. package/dist/{ui → two-d/ui}/NinePatch.d.ts +3 -2
  593. package/dist/two-d/ui/NinePatch.d.ts.map +1 -0
  594. package/dist/{ui → two-d/ui}/NinePatch.js +1 -1
  595. package/dist/two-d/ui/NinePatch.js.map +1 -0
  596. package/dist/{ui → two-d/ui}/RebindScreen.d.ts +1 -1
  597. package/dist/two-d/ui/RebindScreen.d.ts.map +1 -0
  598. package/dist/{ui → two-d/ui}/RebindScreen.js +1 -1
  599. package/dist/two-d/ui/RebindScreen.js.map +1 -0
  600. package/dist/two-d/ui/StatsScreen.d.ts.map +1 -0
  601. package/dist/two-d/ui/StatsScreen.js.map +1 -0
  602. package/dist/{ui → two-d/ui}/Toast.d.ts +2 -1
  603. package/dist/two-d/ui/Toast.d.ts.map +1 -0
  604. package/dist/{ui → two-d/ui}/Toast.js +1 -1
  605. package/dist/two-d/ui/Toast.js.map +1 -0
  606. package/dist/two-d/ui/Tooltip.d.ts +94 -0
  607. package/dist/two-d/ui/Tooltip.d.ts.map +1 -0
  608. package/dist/two-d/ui/Tooltip.js +149 -0
  609. package/dist/two-d/ui/Tooltip.js.map +1 -0
  610. package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -0
  611. package/dist/two-d/ui/VerticalLabel.js.map +1 -0
  612. package/dist/{ui → two-d/ui}/Window.d.ts +2 -2
  613. package/dist/two-d/ui/Window.d.ts.map +1 -0
  614. package/dist/{ui → two-d/ui}/Window.js +1 -1
  615. package/dist/two-d/ui/Window.js.map +1 -0
  616. package/dist/two-d/ui/WindowStack.d.ts.map +1 -0
  617. package/dist/{ui → two-d/ui}/WindowStack.js +1 -1
  618. package/dist/two-d/ui/WindowStack.js.map +1 -0
  619. package/dist/{ui → two-d/ui}/index.d.ts +4 -0
  620. package/dist/two-d/ui/index.d.ts.map +1 -0
  621. package/dist/{ui → two-d/ui}/index.js +2 -0
  622. package/dist/two-d/ui/index.js.map +1 -0
  623. package/dist/{ui → two-d/ui}/theme.d.ts +4 -4
  624. package/dist/two-d/ui/theme.d.ts.map +1 -0
  625. package/dist/{ui → two-d/ui}/theme.js +1 -1
  626. package/dist/two-d/ui/theme.js.map +1 -0
  627. package/dist/version.d.ts +1 -1
  628. package/dist/version.js +1 -1
  629. package/dist/world/Encounters.d.ts +12 -0
  630. package/dist/world/Encounters.d.ts.map +1 -1
  631. package/dist/world/Encounters.js +1 -1
  632. package/dist/world/Encounters.js.map +1 -1
  633. package/dist/world/Environment.d.ts +27 -4
  634. package/dist/world/Environment.d.ts.map +1 -1
  635. package/dist/world/Environment.js +33 -10
  636. package/dist/world/Environment.js.map +1 -1
  637. package/dist/world/Overworld.d.ts +14 -0
  638. package/dist/world/Overworld.d.ts.map +1 -1
  639. package/dist/world/Overworld.js +14 -0
  640. package/dist/world/Overworld.js.map +1 -1
  641. package/dist/world/TurnClock.d.ts +16 -0
  642. package/dist/world/TurnClock.d.ts.map +1 -1
  643. package/dist/world/TurnClock.js +16 -0
  644. package/dist/world/TurnClock.js.map +1 -1
  645. package/dist/world/World.d.ts +14 -0
  646. package/dist/world/World.d.ts.map +1 -1
  647. package/dist/world/World.js +14 -0
  648. package/dist/world/World.js.map +1 -1
  649. package/package.json +228 -147
  650. package/dist/core/Game.d.ts.map +0 -1
  651. package/dist/core/Game.js.map +0 -1
  652. package/dist/render/ActorAnimator.d.ts.map +0 -1
  653. package/dist/render/ActorAnimator.js.map +0 -1
  654. package/dist/render/AnimatedSprite.d.ts.map +0 -1
  655. package/dist/render/AnimatedSprite.js.map +0 -1
  656. package/dist/render/Autotile.d.ts.map +0 -1
  657. package/dist/render/Autotile.js.map +0 -1
  658. package/dist/render/Camera.d.ts.map +0 -1
  659. package/dist/render/Camera.js.map +0 -1
  660. package/dist/render/Capabilities.d.ts.map +0 -1
  661. package/dist/render/Capabilities.js.map +0 -1
  662. package/dist/render/ColorBlindness.d.ts.map +0 -1
  663. package/dist/render/ColorBlindness.js.map +0 -1
  664. package/dist/render/ColorTransformBatcher.d.ts.map +0 -1
  665. package/dist/render/ColorTransformBatcher.js.map +0 -1
  666. package/dist/render/LayeredSprite.d.ts.map +0 -1
  667. package/dist/render/LayeredSprite.js.map +0 -1
  668. package/dist/render/Minimap.d.ts.map +0 -1
  669. package/dist/render/Minimap.js.map +0 -1
  670. package/dist/render/Projectile.d.ts.map +0 -1
  671. package/dist/render/Projectile.js.map +0 -1
  672. package/dist/render/SpriteSheet.d.ts.map +0 -1
  673. package/dist/render/SpriteSheet.js.map +0 -1
  674. package/dist/render/StatusVisuals.d.ts.map +0 -1
  675. package/dist/render/StatusVisuals.js.map +0 -1
  676. package/dist/render/TileMap.d.ts.map +0 -1
  677. package/dist/render/TileMap.js.map +0 -1
  678. package/dist/render/TintedSprite.d.ts.map +0 -1
  679. package/dist/render/TintedSprite.js.map +0 -1
  680. package/dist/render/Viewport.d.ts.map +0 -1
  681. package/dist/render/Viewport.js.map +0 -1
  682. package/dist/render/index.d.ts.map +0 -1
  683. package/dist/render/index.js.map +0 -1
  684. package/dist/rpg/TiledMap.d.ts.map +0 -1
  685. package/dist/rpg/TiledMap.js.map +0 -1
  686. package/dist/stage/DialogueStage.d.ts.map +0 -1
  687. package/dist/stage/DialogueStage.js.map +0 -1
  688. package/dist/stage/index.d.ts.map +0 -1
  689. package/dist/stage/index.js.map +0 -1
  690. package/dist/stage/script.d.ts.map +0 -1
  691. package/dist/stage/script.js.map +0 -1
  692. package/dist/stage/twee.d.ts.map +0 -1
  693. package/dist/stage/twee.js.map +0 -1
  694. package/dist/ui/Bar.d.ts.map +0 -1
  695. package/dist/ui/Bar.js.map +0 -1
  696. package/dist/ui/BitmapLabel.d.ts.map +0 -1
  697. package/dist/ui/BitmapLabel.js.map +0 -1
  698. package/dist/ui/Button.d.ts.map +0 -1
  699. package/dist/ui/Button.js.map +0 -1
  700. package/dist/ui/FloatingText.d.ts.map +0 -1
  701. package/dist/ui/FloatingText.js.map +0 -1
  702. package/dist/ui/HelpScreen.d.ts.map +0 -1
  703. package/dist/ui/HelpScreen.js.map +0 -1
  704. package/dist/ui/IconGrid.d.ts.map +0 -1
  705. package/dist/ui/IconGrid.js.map +0 -1
  706. package/dist/ui/Label.d.ts.map +0 -1
  707. package/dist/ui/Label.js.map +0 -1
  708. package/dist/ui/ListView.d.ts.map +0 -1
  709. package/dist/ui/ListView.js.map +0 -1
  710. package/dist/ui/LoadingScreen.d.ts.map +0 -1
  711. package/dist/ui/LoadingScreen.js.map +0 -1
  712. package/dist/ui/MessageBox.d.ts.map +0 -1
  713. package/dist/ui/MessageBox.js.map +0 -1
  714. package/dist/ui/NinePatch.d.ts.map +0 -1
  715. package/dist/ui/NinePatch.js.map +0 -1
  716. package/dist/ui/RebindScreen.d.ts.map +0 -1
  717. package/dist/ui/RebindScreen.js.map +0 -1
  718. package/dist/ui/StatsScreen.d.ts.map +0 -1
  719. package/dist/ui/StatsScreen.js.map +0 -1
  720. package/dist/ui/Toast.d.ts.map +0 -1
  721. package/dist/ui/Toast.js.map +0 -1
  722. package/dist/ui/VerticalLabel.d.ts.map +0 -1
  723. package/dist/ui/VerticalLabel.js.map +0 -1
  724. package/dist/ui/Window.d.ts.map +0 -1
  725. package/dist/ui/Window.js.map +0 -1
  726. package/dist/ui/WindowStack.d.ts.map +0 -1
  727. package/dist/ui/WindowStack.js.map +0 -1
  728. package/dist/ui/index.d.ts.map +0 -1
  729. package/dist/ui/index.js.map +0 -1
  730. package/dist/ui/theme.d.ts.map +0 -1
  731. package/dist/ui/theme.js.map +0 -1
  732. /package/dist/{render → two-d/render}/ActorAnimator.d.ts +0 -0
  733. /package/dist/{render → two-d/render}/ActorAnimator.js +0 -0
  734. /package/dist/{render → two-d/render}/AnimatedSprite.js +0 -0
  735. /package/dist/{render → two-d/render}/Autotile.d.ts +0 -0
  736. /package/dist/{render → two-d/render}/Autotile.js +0 -0
  737. /package/dist/{render → two-d/render}/Camera.d.ts +0 -0
  738. /package/dist/{render → two-d/render}/Capabilities.d.ts +0 -0
  739. /package/dist/{render → two-d/render}/Capabilities.js +0 -0
  740. /package/dist/{render → two-d/render}/ColorBlindness.d.ts +0 -0
  741. /package/dist/{render → two-d/render}/ColorBlindness.js +0 -0
  742. /package/dist/{render → two-d/render}/LayeredSprite.js +0 -0
  743. /package/dist/{render → two-d/render}/Minimap.d.ts +0 -0
  744. /package/dist/{render → two-d/render}/Projectile.d.ts +0 -0
  745. /package/dist/{render → two-d/render}/Projectile.js +0 -0
  746. /package/dist/{render → two-d/render}/StatusVisuals.d.ts +0 -0
  747. /package/dist/{render → two-d/render}/StatusVisuals.js +0 -0
  748. /package/dist/{render → two-d/render}/TileMap.d.ts +0 -0
  749. /package/dist/{render → two-d/render}/Viewport.d.ts +0 -0
  750. /package/dist/{render → two-d/render}/Viewport.js +0 -0
  751. /package/dist/{stage → two-d/stage}/index.d.ts +0 -0
  752. /package/dist/{stage → two-d/stage}/index.js +0 -0
  753. /package/dist/{ui → two-d/ui}/Bar.d.ts +0 -0
  754. /package/dist/{ui → two-d/ui}/Bar.js +0 -0
  755. /package/dist/{ui → two-d/ui}/BitmapLabel.d.ts +0 -0
  756. /package/dist/{ui → two-d/ui}/BitmapLabel.js +0 -0
  757. /package/dist/{ui → two-d/ui}/FloatingText.d.ts +0 -0
  758. /package/dist/{ui → two-d/ui}/FloatingText.js +0 -0
  759. /package/dist/{ui → two-d/ui}/HelpScreen.js +0 -0
  760. /package/dist/{ui → two-d/ui}/IconGrid.js +0 -0
  761. /package/dist/{ui → two-d/ui}/Label.d.ts +0 -0
  762. /package/dist/{ui → two-d/ui}/Label.js +0 -0
  763. /package/dist/{ui → two-d/ui}/ListView.js +0 -0
  764. /package/dist/{ui → two-d/ui}/LoadingScreen.js +0 -0
  765. /package/dist/{ui → two-d/ui}/MessageBox.js +0 -0
  766. /package/dist/{ui → two-d/ui}/StatsScreen.d.ts +0 -0
  767. /package/dist/{ui → two-d/ui}/StatsScreen.js +0 -0
  768. /package/dist/{ui → two-d/ui}/VerticalLabel.d.ts +0 -0
  769. /package/dist/{ui → two-d/ui}/VerticalLabel.js +0 -0
  770. /package/dist/{ui → two-d/ui}/WindowStack.d.ts +0 -0
@@ -24,6 +24,17 @@ export type TurnResult<Actor> = {
24
24
  * even if that action ends the game; return null when the action already handled its cost.
25
25
  * Reaching the budget returns limit without another peek or action. The caller decides
26
26
  * whether to resume, report a stalled simulation, or yield to its host.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * import { advanceToInput, type TurnRules } from '@datamoc/mw_games/simulation';
31
+ *
32
+ * declare const rules: TurnRules<{ id: string; isPlayer: boolean }>;
33
+ *
34
+ * // runs monster turns automatically, stopping the moment the player needs to act
35
+ * const result = advanceToInput(rules, 1000);
36
+ * if (result.status === 'input') console.log('waiting on', result.actor.id);
37
+ * ```
27
38
  */
28
39
  export declare function advanceToInput<Actor>(rules: TurnRules<Actor>, budget: number): TurnResult<Actor>;
29
40
  //# sourceMappingURL=Turns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Turns.d.ts","sourceRoot":"","sources":["../../src/simulation/Turns.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,WAAW,cAAc,CAAC,KAAK;IACpC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS,CAAC,KAAK;IAC/B,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACjC,QAAQ,IAAI,OAAO,CAAC;IACpB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAClC,kGAAkG;IAClG,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,UAAU,CAAC,KAAK,IACzB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAgBhG"}
1
+ {"version":3,"file":"Turns.d.ts","sourceRoot":"","sources":["../../src/simulation/Turns.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,WAAW,cAAc,CAAC,KAAK;IACpC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS,CAAC,KAAK;IAC/B,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IACjC,QAAQ,IAAI,OAAO,CAAC;IACpB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAClC,kGAAkG;IAClG,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,UAAU,CAAC,KAAK,IACzB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAgBhG"}
@@ -4,6 +4,17 @@
4
4
  * even if that action ends the game; return null when the action already handled its cost.
5
5
  * Reaching the budget returns limit without another peek or action. The caller decides
6
6
  * whether to resume, report a stalled simulation, or yield to its host.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { advanceToInput, type TurnRules } from '@datamoc/mw_games/simulation';
11
+ *
12
+ * declare const rules: TurnRules<{ id: string; isPlayer: boolean }>;
13
+ *
14
+ * // runs monster turns automatically, stopping the moment the player needs to act
15
+ * const result = advanceToInput(rules, 1000);
16
+ * if (result.status === 'input') console.log('waiting on', result.actor.id);
17
+ * ```
7
18
  */
8
19
  export function advanceToInput(rules, budget) {
9
20
  if (!Number.isSafeInteger(budget) || budget < 0)
@@ -1 +1 @@
1
- {"version":3,"file":"Turns.js","sourceRoot":"","sources":["../../src/simulation/Turns.ts"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAQ,KAAuB,EAAE,MAAc;IAC5E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,iDAAiD,CAAC,CAAC;IACzH,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,MAAM,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,QAAQ,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,sDAAsD,CAAC,CAAC;YACrH,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,EAAE,CAAC;IACT,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"Turns.js","sourceRoot":"","sources":["../../src/simulation/Turns.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAAQ,KAAuB,EAAE,MAAc;IAC5E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,iDAAiD,CAAC,CAAC;IACzH,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,MAAM,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,QAAQ,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,sDAAsD,CAAC,CAAC;YACrH,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,EAAE,CAAC;IACT,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC"}
@@ -2,4 +2,14 @@ export { advanceToInput } from './Turns.ts';
2
2
  export type { ScheduledTurns, TurnRules, TurnResult } from './Turns.ts';
3
3
  export { runScenario } from './Scenario.ts';
4
4
  export type { SimulationStatus, SimulationStep, SimulationRule, Scenario, ScenarioResult } from './Scenario.ts';
5
+ export { SimulationRuntime } from './Runtime.ts';
6
+ export type { SimulationContext, SimulationOutcome, SimulationRuntimeRule, SimulationSnapshot, } from './Runtime.ts';
7
+ /**
8
+ * Re-exported from `roguelike` (its own home - it also drives FOV/pathfinding turn order
9
+ * with nothing to do with simulation state or events): `SimulationRuntime` already needs one
10
+ * on every construction, so a game building a simulation-first game need not import a second
11
+ * module just to get the class its own runtime is built around.
12
+ */
13
+ export { Scheduler } from '../roguelike/Scheduler.ts';
14
+ export type { Actor, SchedulerSnapshot } from '../roguelike/Scheduler.ts';
5
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EACX,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GAClB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,3 +1,11 @@
1
1
  export { advanceToInput } from './Turns.js';
2
2
  export { runScenario } from './Scenario.js';
3
+ export { SimulationRuntime } from './Runtime.js';
4
+ /**
5
+ * Re-exported from `roguelike` (its own home - it also drives FOV/pathfinding turn order
6
+ * with nothing to do with simulation state or events): `SimulationRuntime` already needs one
7
+ * on every construction, so a game building a simulation-first game need not import a second
8
+ * module just to get the class its own runtime is built around.
9
+ */
10
+ export { Scheduler } from '../roguelike/Scheduler.js';
3
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQjD;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
@@ -19,13 +19,38 @@ export interface Billboard3DOptions {
19
19
  * this is what turns one of them into something a game can actually trigger, the way a walk
20
20
  * cycle baked into a mesh needs to be, rather than leaving them loaded but unreachable.
21
21
  */
22
+ /**
23
+ * Clamps one frame's intended horizontal move to wherever collision actually allows - the
24
+ * hook `mwg/3d`'s own grid collision (`resolveCapsuleAgainstGrid`) plugs into. `blocked`,
25
+ * when the resolver reports it (`resolveCapsuleAgainstGrid` always does), tells `update`
26
+ * directly whether the move was cut short, rather than `update` re-deriving the same fact by
27
+ * comparing the resolved position against the intended one through separate floating-point
28
+ * arithmetic - two numbers that are conceptually equal are not guaranteed bit-identical.
29
+ */
30
+ export type CollideXZ = (from: {
31
+ x: number;
32
+ z: number;
33
+ }, to: {
34
+ x: number;
35
+ z: number;
36
+ }) => {
37
+ x: number;
38
+ z: number;
39
+ blocked?: boolean;
40
+ };
22
41
  export declare class Character3D {
23
42
  readonly node: TransformNode;
24
43
  private target;
25
44
  private speed;
45
+ private readonly collideXZ?;
26
46
  private readonly animations;
27
47
  private currentClip;
28
- constructor(node: TransformNode, animations?: readonly AnimationGroup[]);
48
+ /**
49
+ * @param collideXZ optional, like `rpg.FreeMover` stays unopinionated about collision
50
+ * until a game wires one in - omitted, `moveTo` interpolates through open space with no
51
+ * notion of terrain height or collision at all, same as before this existed.
52
+ */
53
+ constructor(node: TransformNode, animations?: readonly AnimationGroup[], collideXZ?: CollideXZ);
29
54
  /** true when an animation clip of this name was imported with the model */
30
55
  hasAnimation(name: string): boolean;
31
56
  /**
@@ -1 +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"}
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;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,CACvB,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,KACxB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjD,qBAAa,WAAW;IACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;IAEvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,WAAW,CAA+B;IAElD;;;;OAIG;IACH,YAAY,IAAI,EAAE,aAAa,EAAE,UAAU,GAAE,SAAS,cAAc,EAAO,EAAE,SAAS,CAAC,EAAE,SAAS,EAIjG;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,CA+BpC;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"}
@@ -4,25 +4,24 @@ import { Vector3 } from '@babylonjs/core/Maths/math.vector.js';
4
4
  import { CreatePlane } from '@babylonjs/core/Meshes/Builders/planeBuilder.pure.js';
5
5
  import { Mesh } from '@babylonjs/core/Meshes/mesh.js';
6
6
  import { TransformNode } from '@babylonjs/core/Meshes/transformNode.js';
7
- import { resolve } from '../assets/index.js';
7
+ import { resolve } from '../assets/paths.js';
8
8
  /** an asset path resolved via `mwg/assets`, or a URI passed through unchanged */
9
9
  function resolveSource(source) {
10
10
  return /^(?:data|blob|https?):/i.test(source) ? source : resolve(source);
11
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
12
  export class Character3D {
20
- constructor(node, animations = []) {
13
+ /**
14
+ * @param collideXZ optional, like `rpg.FreeMover` stays unopinionated about collision
15
+ * until a game wires one in - omitted, `moveTo` interpolates through open space with no
16
+ * notion of terrain height or collision at all, same as before this existed.
17
+ */
18
+ constructor(node, animations = [], collideXZ) {
21
19
  this.target = null;
22
20
  this.speed = 0;
23
21
  this.currentClip = null;
24
22
  this.node = node;
25
23
  this.animations = new Map(animations.map((group) => [group.name, group]));
24
+ this.collideXZ = collideXZ;
26
25
  }
27
26
  /** true when an animation clip of this name was imported with the model */
28
27
  hasAnimation(name) {
@@ -67,14 +66,32 @@ export class Character3D {
67
66
  if (!this.target)
68
67
  return false;
69
68
  const distance = Vector3.Distance(this.node.position, this.target);
70
- if (distance <= this.speed * deltaSeconds) {
71
- this.node.position.copyFrom(this.target);
69
+ const reachesTarget = distance <= this.speed * deltaSeconds;
70
+ const rawDirection = this.target.subtract(this.node.position);
71
+ const intended = reachesTarget ? this.target : this.node.position.add(rawDirection.normalize().scale(this.speed * deltaSeconds));
72
+ if (!reachesTarget)
73
+ this.node.rotation.y = Math.atan2(rawDirection.x, rawDirection.z);
74
+ if (this.collideXZ) {
75
+ const from = { x: this.node.position.x, z: this.node.position.z };
76
+ const to = { x: intended.x, z: intended.z };
77
+ const resolved = this.collideXZ(from, to);
78
+ this.node.position.set(resolved.x, intended.y, resolved.z);
79
+ //stopped short of where it meant to go - the target it was walking toward is no
80
+ //longer reachable along this line, the same "give up on this path" a caller of
81
+ //rpg.Collision's resolveAabbAgainstTiles already has to decide for itself
82
+ const blocked = resolved.blocked ?? (resolved.x !== to.x || resolved.z !== to.z);
83
+ if (blocked) {
84
+ this.target = null;
85
+ return false;
86
+ }
87
+ }
88
+ else {
89
+ this.node.position.copyFrom(intended);
90
+ }
91
+ if (reachesTarget) {
72
92
  this.target = null;
73
93
  return false;
74
94
  }
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
95
  return true;
79
96
  }
80
97
  /** @param animations typically `loadModel3D`'s own `animationGroups` result field */
@@ -1 +1 @@
1
- {"version":3,"file":"Character3D.js","sourceRoot":"","sources":["../../src/three-d/Character3D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Character3D.js","sourceRoot":"","sources":["../../src/three-d/Character3D.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { GridCell3D, GridShape3D } from './Grid.ts';
2
+ /**
3
+ * Horizontal collision for `mwg/3d`'s stepped grid terrain (`createTileGrid3D`): a moving
4
+ * capsule/cylinder footprint stopped at the boundary of a raised column instead of clipping
5
+ * through its side, the 3D counterpart to `rpg.Collision`'s 2D tile solidity - and, like that
6
+ * module, this is not a rigid-body physics engine (see item 45's own caution), just the
7
+ * missing primitive behind the bug item 144 was opened from: `Character3D.moveTo`
8
+ * interpolates through open 3D space with no notion of terrain height, collision, or
9
+ * step-up at all, so a path that was not authored to avoid a column's side clips straight
10
+ * through it.
11
+ *
12
+ * A continuous heightmap (`createHeightmapTerrain3D`) is a different technique with its own
13
+ * built-in height query (Babylon's own `GroundMesh.getHeightAtCoordinates`), so it needs
14
+ * nothing from here; this module is specifically for the discrete, per-cell elevation grid
15
+ * `createTileGrid3D` builds columns from, which has no such query at all.
16
+ */
17
+ /** looks up a cell's height by its integer grid coordinate in O(1) rather than scanning `cells` on every query */
18
+ export declare function buildHeightIndex(cells: readonly GridCell3D[]): Map<string, number>;
19
+ /**
20
+ * The integer grid cell nearest world position `(x, z)` - the inverse of `gridPoint3D`.
21
+ * Nearest-cell rounding, not an exact point-in-hexagon test for the hex shape: consistent
22
+ * with `rpg.Collision`'s own choice of simple axis sweeps over a full polygon solver, since
23
+ * every tile a capsule actually stands on is far larger than the rounding error near an edge.
24
+ */
25
+ export declare function cellAt(shape: GridShape3D, x: number, z: number, tileSize?: number): {
26
+ x: number;
27
+ y: number;
28
+ };
29
+ /** a cell's own `height` (grid-height units, before `heightStep` scaling), or `null` for a world position with no cell at all - a hole in the grid, blocking just like a wall would */
30
+ export declare function heightAt(index: ReadonlyMap<string, number>, shape: GridShape3D, x: number, z: number, tileSize?: number): number | null;
31
+ export interface CapsuleGridMoveOptions {
32
+ shape: GridShape3D;
33
+ /** from `buildHeightIndex` */
34
+ heights: ReadonlyMap<string, number>;
35
+ tileSize?: number;
36
+ /** the largest per-cell height difference (grid-height units, not world units) a capsule can step up or down without being blocked; 0 only allows level ground */
37
+ maxStepUp?: number;
38
+ /** positions sampled along the (x, z) segment; higher catches a thin column at high travel speed at the cost of more lookups */
39
+ steps?: number;
40
+ }
41
+ export interface CapsuleGridMoveResult {
42
+ x: number;
43
+ z: number;
44
+ /** true when the move was stopped short of `to` by a wall-height step or a hole in the grid */
45
+ blocked: boolean;
46
+ }
47
+ /**
48
+ * Moves a capsule's footprint from `from` toward `to` in the XZ plane, stopping at the last
49
+ * sampled position still within `maxStepUp` of the cell it started the move standing on,
50
+ * rather than passing straight through a column's side the way an un-collided `Character3D`
51
+ * does. Sampling along the segment, not a swept-shape solver, is what stays shape-agnostic
52
+ * across both `createTileGrid3D` shapes without hex-edge-specific geometry: exactly the
53
+ * `resolveAabbAgainstTiles`-style trade-off `rpg.Collision`'s own doc comment already makes,
54
+ * scaled to a grid that is not always axis-aligned.
55
+ */
56
+ export declare function resolveCapsuleAgainstGrid(from: {
57
+ x: number;
58
+ z: number;
59
+ }, to: {
60
+ x: number;
61
+ z: number;
62
+ }, options: CapsuleGridMoveOptions): CapsuleGridMoveResult;
63
+ //# sourceMappingURL=Collision3D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collision3D.d.ts","sourceRoot":"","sources":["../../src/three-d/Collision3D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AAEH,kHAAkH;AAClH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlF;AAMD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAOvG;AAED,uLAAuL;AACvL,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,GAAG,IAAI,CAIlI;AAED,MAAM,WAAW,sBAAsB;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kKAAkK;IAClK,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gIAAgI;IAChI,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,+FAA+F;IAC/F,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,EAAE,sBAAsB,GAC7B,qBAAqB,CAmBvB"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Horizontal collision for `mwg/3d`'s stepped grid terrain (`createTileGrid3D`): a moving
3
+ * capsule/cylinder footprint stopped at the boundary of a raised column instead of clipping
4
+ * through its side, the 3D counterpart to `rpg.Collision`'s 2D tile solidity - and, like that
5
+ * module, this is not a rigid-body physics engine (see item 45's own caution), just the
6
+ * missing primitive behind the bug item 144 was opened from: `Character3D.moveTo`
7
+ * interpolates through open 3D space with no notion of terrain height, collision, or
8
+ * step-up at all, so a path that was not authored to avoid a column's side clips straight
9
+ * through it.
10
+ *
11
+ * A continuous heightmap (`createHeightmapTerrain3D`) is a different technique with its own
12
+ * built-in height query (Babylon's own `GroundMesh.getHeightAtCoordinates`), so it needs
13
+ * nothing from here; this module is specifically for the discrete, per-cell elevation grid
14
+ * `createTileGrid3D` builds columns from, which has no such query at all.
15
+ */
16
+ /** looks up a cell's height by its integer grid coordinate in O(1) rather than scanning `cells` on every query */
17
+ export function buildHeightIndex(cells) {
18
+ const index = new Map();
19
+ for (const cell of cells)
20
+ index.set(cellKey(cell.x, cell.y), cell.height ?? 0);
21
+ return index;
22
+ }
23
+ function cellKey(x, y) {
24
+ return `${x},${y}`;
25
+ }
26
+ /**
27
+ * The integer grid cell nearest world position `(x, z)` - the inverse of `gridPoint3D`.
28
+ * Nearest-cell rounding, not an exact point-in-hexagon test for the hex shape: consistent
29
+ * with `rpg.Collision`'s own choice of simple axis sweeps over a full polygon solver, since
30
+ * every tile a capsule actually stands on is far larger than the rounding error near an edge.
31
+ */
32
+ export function cellAt(shape, x, z, tileSize = 1) {
33
+ if (!(tileSize > 0))
34
+ throw new Error('3D grid collision tileSize must be positive');
35
+ if (shape === 'square')
36
+ return { x: Math.round(x / tileSize), y: Math.round(z / tileSize) };
37
+ const cellX = Math.round(x / (tileSize * 1.5));
38
+ const cellY = Math.round(z / (Math.sqrt(3) * tileSize) - (cellX & 1) * 0.5);
39
+ return { x: cellX, y: cellY };
40
+ }
41
+ /** a cell's own `height` (grid-height units, before `heightStep` scaling), or `null` for a world position with no cell at all - a hole in the grid, blocking just like a wall would */
42
+ export function heightAt(index, shape, x, z, tileSize = 1) {
43
+ const cell = cellAt(shape, x, z, tileSize);
44
+ const key = cellKey(cell.x, cell.y);
45
+ return index.has(key) ? index.get(key) : null;
46
+ }
47
+ /**
48
+ * Moves a capsule's footprint from `from` toward `to` in the XZ plane, stopping at the last
49
+ * sampled position still within `maxStepUp` of the cell it started the move standing on,
50
+ * rather than passing straight through a column's side the way an un-collided `Character3D`
51
+ * does. Sampling along the segment, not a swept-shape solver, is what stays shape-agnostic
52
+ * across both `createTileGrid3D` shapes without hex-edge-specific geometry: exactly the
53
+ * `resolveAabbAgainstTiles`-style trade-off `rpg.Collision`'s own doc comment already makes,
54
+ * scaled to a grid that is not always axis-aligned.
55
+ */
56
+ export function resolveCapsuleAgainstGrid(from, to, options) {
57
+ const { shape, heights, tileSize = 1, maxStepUp = 0, steps = 8 } = options;
58
+ if (!(steps > 0))
59
+ throw new Error('3D grid collision steps must be positive');
60
+ let currentHeight = heightAt(heights, shape, from.x, from.z, tileSize) ?? 0;
61
+ let last = { x: from.x, z: from.z };
62
+ for (let i = 1; i <= steps; i++) {
63
+ const t = i / steps;
64
+ const x = from.x + (to.x - from.x) * t;
65
+ const z = from.z + (to.z - from.z) * t;
66
+ const height = heightAt(heights, shape, x, z, tileSize);
67
+ if (height === null || Math.abs(height - currentHeight) > maxStepUp) {
68
+ return { x: last.x, z: last.z, blocked: true };
69
+ }
70
+ last = { x, z };
71
+ currentHeight = height;
72
+ }
73
+ return { x: last.x, z: last.z, blocked: false };
74
+ }
75
+ //# sourceMappingURL=Collision3D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collision3D.js","sourceRoot":"","sources":["../../src/three-d/Collision3D.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import '@babylonjs/loaders/glTF/index.js';
2
2
  import { ImportMeshAsync } from '@babylonjs/core/Loading/sceneLoader.js';
3
- import { resolve } from '../assets/index.js';
3
+ import { resolve } from '../assets/paths.js';
4
4
  /**
5
5
  * Loads glTF/GLB from an asset path, data/blob/http(s) URI, File, or in-memory byte view. An
6
6
  * asset path is resolved through `mwg/assets` first, the same way every other loader in the
@@ -5,9 +5,11 @@ export type { GridCell3D, GridShape3D, Point3D } from './Grid.ts';
5
5
  export { createTileGrid3D } from './TileGrid3D.ts';
6
6
  export type { TileGrid3DMeshes, TileGrid3DOptions } from './TileGrid3D.ts';
7
7
  export { Character3D } from './Character3D.ts';
8
- export type { Billboard3DOptions } from './Character3D.ts';
8
+ export type { Billboard3DOptions, CollideXZ } from './Character3D.ts';
9
9
  export { parseVox, createVoxModel3D } from './Vox.ts';
10
10
  export type { VoxModel, VoxSize, Voxel } from './Vox.ts';
11
11
  export { createHeightmapTerrain3D } from './Heightmap.ts';
12
12
  export type { HeightmapSource, HeightmapTerrain3DOptions } from './Heightmap.ts';
13
+ export { buildHeightIndex, cellAt, heightAt, resolveCapsuleAgainstGrid } from './Collision3D.ts';
14
+ export type { CapsuleGridMoveOptions, CapsuleGridMoveResult } from './Collision3D.ts';
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/three-d/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACtD,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/three-d/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACtD,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AACjG,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -4,4 +4,5 @@ export { createTileGrid3D } from './TileGrid3D.js';
4
4
  export { Character3D } from './Character3D.js';
5
5
  export { parseVox, createVoxModel3D } from './Vox.js';
6
6
  export { createHeightmapTerrain3D } from './Heightmap.js';
7
+ export { buildHeightIndex, cellAt, heightAt, resolveCapsuleAgainstGrid } from './Collision3D.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/three-d/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/three-d/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { Application } from 'pixi.js';
2
- import type { Scene, SceneClass } from './Scene.ts';
3
- import { Signal } from './Signal.ts';
2
+ import type { Scene2D } from './Scene2D.ts';
3
+ import type { SceneClass } from '../core/Scene.ts';
4
+ import { Signal } from '../core/Signal.ts';
4
5
  export interface GameOptions {
5
6
  /** the canvas to draw into; one is created and appended if omitted */
6
7
  canvas?: HTMLCanvasElement;
@@ -30,18 +31,15 @@ export interface GameOptions {
30
31
  */
31
32
  resizeTo?: HTMLElement | Window;
32
33
  /**
33
- * Pixi extension registrations to run before the renderer is built, such as
34
- * `mwg/render`'s `registerColorTransform` for `TintedSprite`.
34
+ * Pixi extension registrations to run before the renderer is built.
35
35
  *
36
- * `mwg/core` does not import `mwg/render` itself - a game that only ever imports
37
- * `mwg/core` should not find the whole render module compiled in regardless. A game
38
- * that does use `TintedSprite` (directly, or through `TileMap`/`DialogueStage`/
39
- * `AnimatedSprite`, which are all built on it) passes its registration function here:
40
- *
41
- * ```ts
42
- * import { registerColorTransform } from 'mw_games/render';
43
- * new Game({ extensions: [registerColorTransform] });
44
- * ```
36
+ * `TintedSprite` (and everything built on it - `AnimatedSprite`, `TileMap`,
37
+ * `DialogueStage`) registers its own colour-transform pipe automatically, at module
38
+ * scope, the moment a game imports it; a game never has to pass anything here for that.
39
+ * This stays as an escape hatch for a game defining its own Pixi extension - a custom
40
+ * render pipe, its own batcher - which still has to be registered before `app.init()`
41
+ * builds the renderer, the same constraint `registerColorTransform` works around by
42
+ * self-registering on import instead of needing a caller to remember it.
45
43
  */
46
44
  extensions?: readonly (() => void)[];
47
45
  }
@@ -74,14 +72,14 @@ export declare class Game {
74
72
  get height(): number;
75
73
  /** the running game, for the few places that genuinely need a global */
76
74
  static get current(): Game;
77
- start(first: SceneClass): Promise<void>;
75
+ start(first: SceneClass<Scene2D>): Promise<void>;
78
76
  /**
79
77
  * Queues a scene change; it happens at the start of the next frame.
80
78
  *
81
79
  * The whole stack goes: every scene is destroyed, suspended or not, and the
82
80
  * new one starts alone. For a scene that returns, push it instead.
83
81
  */
84
- switchScene(next: SceneClass): void;
82
+ switchScene(next: SceneClass<Scene2D>): void;
85
83
  /**
86
84
  * Queues a scene on top of the current one; it starts at the next frame.
87
85
  *
@@ -89,7 +87,7 @@ export declare class Game {
89
87
  * keeps rendering, so the new scene can layer over it or replace it
90
88
  * outright, and `popScene` resumes exactly where play left off.
91
89
  */
92
- pushScene(next: SceneClass): void;
90
+ pushScene(next: SceneClass<Scene2D>): void;
93
91
  /**
94
92
  * Queues the top scene's removal; it happens at the start of the next frame.
95
93
  *
@@ -97,7 +95,7 @@ export declare class Game {
97
95
  */
98
96
  popScene(result?: unknown): void;
99
97
  /** the scene currently updating: the top of the stack */
100
- get currentScene(): Scene | null;
98
+ get currentScene(): Scene2D | null;
101
99
  /**
102
100
  * Briefly dips `timeScale` toward `scale` for `duration` real seconds, then restores it
103
101
  * to 1 - a heavy hit's momentary freeze-frame, distinct from `render.Camera.shake` (which
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Game.d.ts","sourceRoot":"","sources":["../../src/two-d/Game.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAkD3C,MAAM,WAAW,WAAW;IAC3B,sEAAsE;IACtE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;CACrC;AAED;;;;GAIG;AACH,qBAAa,IAAI;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAE5C,QAAQ,CAAC,GAAG,0CAAqB;IAEjC,mEAAmE;IACnE,OAAO,SAAK;IAEZ,wDAAwD;IACxD,SAAS,SAAK;IAEd,+EAA+E;IAC/E,SAAS,SAAK;IAEd,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,iBAAwB;IAExC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAA6B;IAEpD,YAAY,OAAO,GAAE,WAAgB,EAwBpC;IAED,6EAA6E;IAC7E,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,wEAAwE;IACxE,MAAM,KAAK,OAAO,IAAI,IAAI,CAGzB;IAEK,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DrD;IAED;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAE3C;IAED;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAEzC;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAE/B;IAED,yDAAyD;IACzD,IAAI,YAAY,IAAI,OAAO,GAAG,IAAI,CAEjC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,IAAI,CAGzC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGrB;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,KAAK;IA8Bb,OAAO,CAAC,SAAS;IAIjB,0EAA0E;IAC1E,OAAO,CAAC,WAAW;IAanB,+EAA+E;IAC/E,OAAO,CAAC,SAAS;IAYjB,kEAAkE;IAClE,OAAO,CAAC,QAAQ;IAMhB,OAAO,IAAI,IAAI,CAOd;CACD"}
@@ -1,7 +1,7 @@
1
1
  import { Application, TextureSource } from 'pixi.js';
2
- import { SceneStack } from './SceneStack.js';
3
- import { Signal } from './Signal.js';
4
- import * as Input from './Input.js';
2
+ import { SceneStack } from '../core/SceneStack.js';
3
+ import { Signal } from '../core/Signal.js';
4
+ import * as Input from '../core/Input.js';
5
5
  const PIXEL_ART_CLASS = 'mwg-pixel-art';
6
6
  /**
7
7
  * A class beats an inline `canvas.style.imageRendering` because Pixi's own `autoDensity`/
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Game.js","sourceRoot":"","sources":["../../src/two-d/Game.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Scene } from '../core/Scene.ts';
2
+ import type { Container2D } from './render/Types2D.ts';
3
+ /**
4
+ * A scene that draws through Pixi: `core.Scene`'s lifecycle plus the container everything
5
+ * this screen shows hangs off.
6
+ *
7
+ * This is what a 2D game extends. The container is destroyed with the scene, so a scene may
8
+ * add whatever it likes to `stage` without tracking it for cleanup. The base class holds the
9
+ * lifecycle alone precisely so that `core.SceneStack` can drive a Babylon scene just as well
10
+ * as this one - the stack calls `create`, `resize`, `onSuspend`, `onResume` and `destroy`,
11
+ * and never touches `stage`.
12
+ */
13
+ export declare abstract class Scene2D extends Scene {
14
+ /** everything this scene draws hangs off here */
15
+ readonly stage: Container2D;
16
+ protected teardown(): void;
17
+ }
18
+ export type Scene2DClass = new () => Scene2D;
19
+ //# sourceMappingURL=Scene2D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scene2D.d.ts","sourceRoot":"","sources":["../../src/two-d/Scene2D.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;GASG;AACH,8BAAsB,OAAQ,SAAQ,KAAK;IAC1C,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAmB;IAE9C,UAAmB,QAAQ,IAAI,IAAI,CAElC;CACD;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,OAAO,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Container } from 'pixi.js';
2
+ import { Scene } from '../core/Scene.js';
3
+ /**
4
+ * A scene that draws through Pixi: `core.Scene`'s lifecycle plus the container everything
5
+ * this screen shows hangs off.
6
+ *
7
+ * This is what a 2D game extends. The container is destroyed with the scene, so a scene may
8
+ * add whatever it likes to `stage` without tracking it for cleanup. The base class holds the
9
+ * lifecycle alone precisely so that `core.SceneStack` can drive a Babylon scene just as well
10
+ * as this one - the stack calls `create`, `resize`, `onSuspend`, `onResume` and `destroy`,
11
+ * and never touches `stage`.
12
+ */
13
+ export class Scene2D extends Scene {
14
+ constructor() {
15
+ super(...arguments);
16
+ /** everything this scene draws hangs off here */
17
+ this.stage = new Container();
18
+ }
19
+ teardown() {
20
+ this.stage.destroy({ children: true });
21
+ }
22
+ }
23
+ //# sourceMappingURL=Scene2D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scene2D.js","sourceRoot":"","sources":["../../src/two-d/Scene2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC;;;;;;;;;GASG;AACH,MAAM,OAAgB,OAAQ,SAAQ,KAAK;IAA3C;;QACC,iDAAiD;QACxC,UAAK,GAAgB,IAAI,SAAS,EAAE,CAAC;IAK/C,CAAC;IAHmB,QAAQ;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;CACD"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Everything that draws in 2D, through PixiJS.
3
+ *
4
+ * The counterpart to `mwg/3d`, and the reason `mwg/core` needs no renderer: `Game` owns the
5
+ * Pixi `Application` and the frame loop, `Scene2D` adds a display container to `core.Scene`'s
6
+ * renderer-free lifecycle, and `render`, `ui` and `stage` live underneath here because every
7
+ * one of them is Pixi from top to bottom.
8
+ *
9
+ * This barrel is the one-stop 2D import. The granular subpaths still exist and are what a
10
+ * game concerned with bundle size should reach for: `mwg/two-d/render`, `mwg/two-d/ui`,
11
+ * `mwg/two-d/stage`.
12
+ */
13
+ export { Game } from './Game.ts';
14
+ export type { GameOptions } from './Game.ts';
15
+ export { Scene2D } from './Scene2D.ts';
16
+ export type { Scene2DClass } from './Scene2D.ts';
17
+ export * from './render/index.ts';
18
+ export * from './ui/index.ts';
19
+ export * from './stage/index.ts';
20
+ //# sourceMappingURL=index.d.ts.map