@datamoc/mw_games 0.4.0 → 0.4.2

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 (665) hide show
  1. package/README.md +2 -2
  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 +20 -0
  7. package/dist/actors/Affix.d.ts.map +1 -1
  8. package/dist/actors/Affix.js.map +1 -1
  9. package/dist/actors/Appearances.d.ts +12 -0
  10. package/dist/actors/Appearances.d.ts.map +1 -1
  11. package/dist/actors/Appearances.js +12 -0
  12. package/dist/actors/Appearances.js.map +1 -1
  13. package/dist/actors/Aura.d.ts +16 -0
  14. package/dist/actors/Aura.d.ts.map +1 -1
  15. package/dist/actors/Aura.js +16 -0
  16. package/dist/actors/Aura.js.map +1 -1
  17. package/dist/actors/Barrier.d.ts +13 -0
  18. package/dist/actors/Barrier.d.ts.map +1 -1
  19. package/dist/actors/Barrier.js.map +1 -1
  20. package/dist/actors/Charges.d.ts +13 -0
  21. package/dist/actors/Charges.d.ts.map +1 -1
  22. package/dist/actors/Charges.js.map +1 -1
  23. package/dist/actors/Equipment.d.ts +18 -0
  24. package/dist/actors/Equipment.d.ts.map +1 -1
  25. package/dist/actors/Equipment.js +18 -0
  26. package/dist/actors/Equipment.js.map +1 -1
  27. package/dist/actors/Inventory.d.ts +12 -0
  28. package/dist/actors/Inventory.d.ts.map +1 -1
  29. package/dist/actors/Inventory.js +12 -0
  30. package/dist/actors/Inventory.js.map +1 -1
  31. package/dist/actors/ItemState.d.ts +13 -0
  32. package/dist/actors/ItemState.d.ts.map +1 -1
  33. package/dist/actors/ItemState.js +13 -0
  34. package/dist/actors/ItemState.js.map +1 -1
  35. package/dist/actors/ItemStatusEffect.d.ts +13 -0
  36. package/dist/actors/ItemStatusEffect.d.ts.map +1 -1
  37. package/dist/actors/ItemStatusEffect.js +13 -0
  38. package/dist/actors/ItemStatusEffect.js.map +1 -1
  39. package/dist/actors/Loot.d.ts +15 -1
  40. package/dist/actors/Loot.d.ts.map +1 -1
  41. package/dist/actors/Loot.js +15 -1
  42. package/dist/actors/Loot.js.map +1 -1
  43. package/dist/actors/Progression.d.ts +14 -1
  44. package/dist/actors/Progression.d.ts.map +1 -1
  45. package/dist/actors/Progression.js +14 -1
  46. package/dist/actors/Progression.js.map +1 -1
  47. package/dist/actors/Resource.d.ts +14 -0
  48. package/dist/actors/Resource.d.ts.map +1 -1
  49. package/dist/actors/Resource.js.map +1 -1
  50. package/dist/actors/Scaling.d.ts +8 -0
  51. package/dist/actors/Scaling.d.ts.map +1 -1
  52. package/dist/actors/Scaling.js.map +1 -1
  53. package/dist/actors/Shop.d.ts +15 -0
  54. package/dist/actors/Shop.d.ts.map +1 -1
  55. package/dist/actors/Shop.js.map +1 -1
  56. package/dist/actors/SkillPoints.d.ts +13 -0
  57. package/dist/actors/SkillPoints.d.ts.map +1 -1
  58. package/dist/actors/SkillPoints.js +13 -0
  59. package/dist/actors/SkillPoints.js.map +1 -1
  60. package/dist/actors/StatusEffect.d.ts +18 -0
  61. package/dist/actors/StatusEffect.d.ts.map +1 -1
  62. package/dist/actors/StatusEffect.js +18 -0
  63. package/dist/actors/StatusEffect.js.map +1 -1
  64. package/dist/actors/Support.d.ts +11 -0
  65. package/dist/actors/Support.d.ts.map +1 -1
  66. package/dist/actors/Support.js +11 -0
  67. package/dist/actors/Support.js.map +1 -1
  68. package/dist/actors/Traits.d.ts +14 -0
  69. package/dist/actors/Traits.d.ts.map +1 -1
  70. package/dist/actors/Traits.js +14 -0
  71. package/dist/actors/Traits.js.map +1 -1
  72. package/dist/actors/craft.d.ts +16 -0
  73. package/dist/actors/craft.d.ts.map +1 -1
  74. package/dist/actors/craft.js +16 -0
  75. package/dist/actors/craft.js.map +1 -1
  76. package/dist/actors/skillCheck.d.ts +8 -0
  77. package/dist/actors/skillCheck.d.ts.map +1 -1
  78. package/dist/actors/skillCheck.js +8 -0
  79. package/dist/actors/skillCheck.js.map +1 -1
  80. package/dist/assets/ByteProgress.d.ts +10 -0
  81. package/dist/assets/ByteProgress.d.ts.map +1 -1
  82. package/dist/assets/ByteProgress.js +10 -0
  83. package/dist/assets/ByteProgress.js.map +1 -1
  84. package/dist/assets/Streaming.d.ts +10 -0
  85. package/dist/assets/Streaming.d.ts.map +1 -1
  86. package/dist/assets/Streaming.js +10 -0
  87. package/dist/assets/Streaming.js.map +1 -1
  88. package/dist/assets/binary.d.ts +52 -0
  89. package/dist/assets/binary.d.ts.map +1 -0
  90. package/dist/assets/binary.js +57 -0
  91. package/dist/assets/binary.js.map +1 -0
  92. package/dist/assets/index.d.ts +10 -5
  93. package/dist/assets/index.d.ts.map +1 -1
  94. package/dist/assets/index.js +9 -5
  95. package/dist/assets/index.js.map +1 -1
  96. package/dist/assets/loader.d.ts +11 -0
  97. package/dist/assets/loader.d.ts.map +1 -1
  98. package/dist/assets/loader.js +11 -0
  99. package/dist/assets/loader.js.map +1 -1
  100. package/dist/assets/paths.d.ts +10 -0
  101. package/dist/assets/paths.d.ts.map +1 -1
  102. package/dist/assets/paths.js +10 -0
  103. package/dist/assets/paths.js.map +1 -1
  104. package/dist/audio/Captions.d.ts +13 -1
  105. package/dist/audio/Captions.d.ts.map +1 -1
  106. package/dist/audio/Captions.js +13 -1
  107. package/dist/audio/Captions.js.map +1 -1
  108. package/dist/audio/Midi.d.ts +19 -1
  109. package/dist/audio/Midi.d.ts.map +1 -1
  110. package/dist/audio/Midi.js +19 -1
  111. package/dist/audio/Midi.js.map +1 -1
  112. package/dist/audio/Music.d.ts +11 -0
  113. package/dist/audio/Music.d.ts.map +1 -1
  114. package/dist/audio/Music.js +11 -0
  115. package/dist/audio/Music.js.map +1 -1
  116. package/dist/audio/Orchestrator.d.ts +14 -0
  117. package/dist/audio/Orchestrator.d.ts.map +1 -1
  118. package/dist/audio/Orchestrator.js +14 -0
  119. package/dist/audio/Orchestrator.js.map +1 -1
  120. package/dist/audio/Playable.d.ts +11 -1
  121. package/dist/audio/Playable.d.ts.map +1 -1
  122. package/dist/audio/Playable.js +11 -1
  123. package/dist/audio/Playable.js.map +1 -1
  124. package/dist/audio/Sound.d.ts +8 -0
  125. package/dist/audio/Sound.d.ts.map +1 -1
  126. package/dist/audio/Sound.js +8 -0
  127. package/dist/audio/Sound.js.map +1 -1
  128. package/dist/audio/Synth.d.ts +15 -0
  129. package/dist/audio/Synth.d.ts.map +1 -1
  130. package/dist/audio/Synth.js +15 -0
  131. package/dist/audio/Synth.js.map +1 -1
  132. package/dist/battle/BattleAI.d.ts +18 -2
  133. package/dist/battle/BattleAI.d.ts.map +1 -1
  134. package/dist/battle/BattleAI.js +18 -2
  135. package/dist/battle/BattleAI.js.map +1 -1
  136. package/dist/battle/Evolution.d.ts +12 -0
  137. package/dist/battle/Evolution.d.ts.map +1 -1
  138. package/dist/battle/Evolution.js +12 -0
  139. package/dist/battle/Evolution.js.map +1 -1
  140. package/dist/battle/Field.d.ts +11 -0
  141. package/dist/battle/Field.d.ts.map +1 -1
  142. package/dist/battle/Field.js.map +1 -1
  143. package/dist/battle/Hooks.d.ts +16 -0
  144. package/dist/battle/Hooks.d.ts.map +1 -1
  145. package/dist/battle/Hooks.js +16 -0
  146. package/dist/battle/Hooks.js.map +1 -1
  147. package/dist/battle/Move.d.ts +13 -0
  148. package/dist/battle/Move.d.ts.map +1 -1
  149. package/dist/battle/Move.js +13 -0
  150. package/dist/battle/Move.js.map +1 -1
  151. package/dist/battle/Party.d.ts +11 -0
  152. package/dist/battle/Party.d.ts.map +1 -1
  153. package/dist/battle/Party.js +11 -0
  154. package/dist/battle/Party.js.map +1 -1
  155. package/dist/battle/Species.d.ts +10 -0
  156. package/dist/battle/Species.d.ts.map +1 -1
  157. package/dist/battle/Species.js +10 -0
  158. package/dist/battle/Species.js.map +1 -1
  159. package/dist/battle/StatStages.d.ts +14 -0
  160. package/dist/battle/StatStages.d.ts.map +1 -1
  161. package/dist/battle/StatStages.js.map +1 -1
  162. package/dist/battle/TypeMatrix.d.ts +11 -0
  163. package/dist/battle/TypeMatrix.d.ts.map +1 -1
  164. package/dist/battle/TypeMatrix.js +11 -0
  165. package/dist/battle/TypeMatrix.js.map +1 -1
  166. package/dist/board/Army.d.ts +75 -0
  167. package/dist/board/Army.d.ts.map +1 -1
  168. package/dist/board/Army.js +75 -0
  169. package/dist/board/Army.js.map +1 -1
  170. package/dist/board/Classics.d.ts +297 -1
  171. package/dist/board/Classics.d.ts.map +1 -1
  172. package/dist/board/Classics.js +297 -1
  173. package/dist/board/Classics.js.map +1 -1
  174. package/dist/board/Engine.d.ts +23 -0
  175. package/dist/board/Engine.d.ts.map +1 -1
  176. package/dist/board/Engine.js +23 -0
  177. package/dist/board/Engine.js.map +1 -1
  178. package/dist/board/FogOfWar.d.ts +20 -0
  179. package/dist/board/FogOfWar.d.ts.map +1 -1
  180. package/dist/board/FogOfWar.js +20 -0
  181. package/dist/board/FogOfWar.js.map +1 -1
  182. package/dist/board/Tactics.d.ts +158 -1
  183. package/dist/board/Tactics.d.ts.map +1 -1
  184. package/dist/board/Tactics.js +125 -1
  185. package/dist/board/Tactics.js.map +1 -1
  186. package/dist/board/chess.d.ts +87 -3
  187. package/dist/board/chess.d.ts.map +1 -1
  188. package/dist/board/chess.js +96 -4
  189. package/dist/board/chess.js.map +1 -1
  190. package/dist/core/Achievements.d.ts +15 -0
  191. package/dist/core/Achievements.d.ts.map +1 -1
  192. package/dist/core/Achievements.js +15 -0
  193. package/dist/core/Achievements.js.map +1 -1
  194. package/dist/core/Collection.d.ts +12 -0
  195. package/dist/core/Collection.d.ts.map +1 -1
  196. package/dist/core/Collection.js +12 -0
  197. package/dist/core/Collection.js.map +1 -1
  198. package/dist/core/Entity.d.ts +42 -0
  199. package/dist/core/Entity.d.ts.map +1 -0
  200. package/dist/core/Entity.js +47 -0
  201. package/dist/core/Entity.js.map +1 -0
  202. package/dist/core/Feedback.d.ts +11 -1
  203. package/dist/core/Feedback.d.ts.map +1 -1
  204. package/dist/core/Feedback.js +11 -1
  205. package/dist/core/Feedback.js.map +1 -1
  206. package/dist/core/Hex.d.ts +14 -0
  207. package/dist/core/Hex.d.ts.map +1 -1
  208. package/dist/core/Hex.js +14 -0
  209. package/dist/core/Hex.js.map +1 -1
  210. package/dist/core/Hooks.d.ts +14 -0
  211. package/dist/core/Hooks.d.ts.map +1 -1
  212. package/dist/core/Hooks.js.map +1 -1
  213. package/dist/core/Input.d.ts +12 -0
  214. package/dist/core/Input.d.ts.map +1 -1
  215. package/dist/core/Input.js.map +1 -1
  216. package/dist/core/Loading.d.ts +17 -0
  217. package/dist/core/Loading.d.ts.map +1 -1
  218. package/dist/core/Loading.js +17 -0
  219. package/dist/core/Loading.js.map +1 -1
  220. package/dist/core/Log.d.ts +9 -0
  221. package/dist/core/Log.d.ts.map +1 -1
  222. package/dist/core/Log.js +9 -0
  223. package/dist/core/Log.js.map +1 -1
  224. package/dist/core/Multiplayer.d.ts +12 -0
  225. package/dist/core/Multiplayer.d.ts.map +1 -1
  226. package/dist/core/Multiplayer.js +12 -0
  227. package/dist/core/Multiplayer.js.map +1 -1
  228. package/dist/core/News.d.ts +12 -0
  229. package/dist/core/News.d.ts.map +1 -1
  230. package/dist/core/News.js.map +1 -1
  231. package/dist/core/PlayerInput.d.ts +14 -0
  232. package/dist/core/PlayerInput.d.ts.map +1 -1
  233. package/dist/core/PlayerInput.js +14 -0
  234. package/dist/core/PlayerInput.js.map +1 -1
  235. package/dist/core/Presentation.d.ts +56 -0
  236. package/dist/core/Presentation.d.ts.map +1 -0
  237. package/dist/core/Presentation.js +78 -0
  238. package/dist/core/Presentation.js.map +1 -0
  239. package/dist/core/Random.d.ts +24 -0
  240. package/dist/core/Random.d.ts.map +1 -1
  241. package/dist/core/Random.js +24 -0
  242. package/dist/core/Random.js.map +1 -1
  243. package/dist/core/Replay.d.ts +31 -0
  244. package/dist/core/Replay.d.ts.map +1 -1
  245. package/dist/core/Replay.js +31 -0
  246. package/dist/core/Replay.js.map +1 -1
  247. package/dist/core/RunHistory.d.ts +12 -0
  248. package/dist/core/RunHistory.d.ts.map +1 -1
  249. package/dist/core/RunHistory.js.map +1 -1
  250. package/dist/core/Sanitize.d.ts +18 -0
  251. package/dist/core/Sanitize.d.ts.map +1 -1
  252. package/dist/core/Sanitize.js +18 -0
  253. package/dist/core/Sanitize.js.map +1 -1
  254. package/dist/core/Save.d.ts.map +1 -1
  255. package/dist/core/Save.js +13 -0
  256. package/dist/core/Save.js.map +1 -1
  257. package/dist/core/SaveSync.d.ts +14 -0
  258. package/dist/core/SaveSync.d.ts.map +1 -1
  259. package/dist/core/SaveSync.js.map +1 -1
  260. package/dist/core/Scene.d.ts +13 -0
  261. package/dist/core/Scene.d.ts.map +1 -1
  262. package/dist/core/Scene.js +13 -0
  263. package/dist/core/Scene.js.map +1 -1
  264. package/dist/core/SceneStack.d.ts +20 -0
  265. package/dist/core/SceneStack.d.ts.map +1 -1
  266. package/dist/core/SceneStack.js +20 -0
  267. package/dist/core/SceneStack.js.map +1 -1
  268. package/dist/core/Scramble.d.ts +8 -0
  269. package/dist/core/Scramble.d.ts.map +1 -1
  270. package/dist/core/Scramble.js +8 -0
  271. package/dist/core/Scramble.js.map +1 -1
  272. package/dist/core/Session.d.ts +10 -0
  273. package/dist/core/Session.d.ts.map +1 -1
  274. package/dist/core/Session.js.map +1 -1
  275. package/dist/core/Signal.d.ts +11 -0
  276. package/dist/core/Signal.d.ts.map +1 -1
  277. package/dist/core/Signal.js.map +1 -1
  278. package/dist/core/Spawner.d.ts +17 -0
  279. package/dist/core/Spawner.d.ts.map +1 -1
  280. package/dist/core/Spawner.js +17 -0
  281. package/dist/core/Spawner.js.map +1 -1
  282. package/dist/core/Stats.d.ts +14 -0
  283. package/dist/core/Stats.d.ts.map +1 -1
  284. package/dist/core/Stats.js +14 -0
  285. package/dist/core/Stats.js.map +1 -1
  286. package/dist/core/Telemetry.d.ts +11 -0
  287. package/dist/core/Telemetry.d.ts.map +1 -1
  288. package/dist/core/Telemetry.js +11 -0
  289. package/dist/core/Telemetry.js.map +1 -1
  290. package/dist/core/Tween.d.ts +16 -1
  291. package/dist/core/Tween.d.ts.map +1 -1
  292. package/dist/core/Tween.js +16 -1
  293. package/dist/core/Tween.js.map +1 -1
  294. package/dist/core/UndoHistory.d.ts +15 -0
  295. package/dist/core/UndoHistory.d.ts.map +1 -1
  296. package/dist/core/UndoHistory.js.map +1 -1
  297. package/dist/core/index.d.ts +4 -0
  298. package/dist/core/index.d.ts.map +1 -1
  299. package/dist/core/index.js +2 -0
  300. package/dist/core/index.js.map +1 -1
  301. package/dist/i18n/Content.d.ts +151 -0
  302. package/dist/i18n/Content.d.ts.map +1 -0
  303. package/dist/i18n/Content.js +219 -0
  304. package/dist/i18n/Content.js.map +1 -0
  305. package/dist/i18n/Format.d.ts +25 -0
  306. package/dist/i18n/Format.d.ts.map +1 -0
  307. package/dist/i18n/Format.js +32 -0
  308. package/dist/i18n/Format.js.map +1 -0
  309. package/dist/i18n/SemanticMessage.d.ts +71 -0
  310. package/dist/i18n/SemanticMessage.d.ts.map +1 -0
  311. package/dist/i18n/SemanticMessage.js +40 -0
  312. package/dist/i18n/SemanticMessage.js.map +1 -0
  313. package/dist/i18n/Validate.d.ts +56 -0
  314. package/dist/i18n/Validate.d.ts.map +1 -0
  315. package/dist/i18n/Validate.js +65 -0
  316. package/dist/i18n/Validate.js.map +1 -0
  317. package/dist/i18n/index.d.ts +74 -3
  318. package/dist/i18n/index.d.ts.map +1 -1
  319. package/dist/i18n/index.js +136 -7
  320. package/dist/i18n/index.js.map +1 -1
  321. package/dist/mw_games.global.js +153 -88
  322. package/dist/roguelike/Blob.d.ts +11 -0
  323. package/dist/roguelike/Blob.d.ts.map +1 -1
  324. package/dist/roguelike/Blob.js +11 -0
  325. package/dist/roguelike/Blob.js.map +1 -1
  326. package/dist/roguelike/Boss.d.ts +12 -0
  327. package/dist/roguelike/Boss.d.ts.map +1 -1
  328. package/dist/roguelike/Boss.js +12 -0
  329. package/dist/roguelike/Boss.js.map +1 -1
  330. package/dist/roguelike/Combat.d.ts +13 -0
  331. package/dist/roguelike/Combat.d.ts.map +1 -1
  332. package/dist/roguelike/Combat.js +13 -0
  333. package/dist/roguelike/Combat.js.map +1 -1
  334. package/dist/roguelike/ContentRoll.d.ts +10 -0
  335. package/dist/roguelike/ContentRoll.d.ts.map +1 -1
  336. package/dist/roguelike/ContentRoll.js +10 -0
  337. package/dist/roguelike/ContentRoll.js.map +1 -1
  338. package/dist/roguelike/Doors.d.ts +13 -0
  339. package/dist/roguelike/Doors.d.ts.map +1 -1
  340. package/dist/roguelike/Doors.js +13 -0
  341. package/dist/roguelike/Doors.js.map +1 -1
  342. package/dist/roguelike/DungeonParity.d.ts +15 -0
  343. package/dist/roguelike/DungeonParity.d.ts.map +1 -1
  344. package/dist/roguelike/DungeonParity.js +15 -0
  345. package/dist/roguelike/DungeonParity.js.map +1 -1
  346. package/dist/roguelike/Elevation.d.ts +15 -0
  347. package/dist/roguelike/Elevation.d.ts.map +1 -1
  348. package/dist/roguelike/Elevation.js +15 -0
  349. package/dist/roguelike/Elevation.js.map +1 -1
  350. package/dist/roguelike/Features.d.ts +17 -0
  351. package/dist/roguelike/Features.d.ts.map +1 -1
  352. package/dist/roguelike/Features.js +17 -0
  353. package/dist/roguelike/Features.js.map +1 -1
  354. package/dist/roguelike/FieldOfView.d.ts +13 -0
  355. package/dist/roguelike/FieldOfView.d.ts.map +1 -1
  356. package/dist/roguelike/FieldOfView.js +13 -0
  357. package/dist/roguelike/FieldOfView.js.map +1 -1
  358. package/dist/roguelike/Level.d.ts +26 -1
  359. package/dist/roguelike/Level.d.ts.map +1 -1
  360. package/dist/roguelike/Level.js +26 -1
  361. package/dist/roguelike/Level.js.map +1 -1
  362. package/dist/roguelike/MonsterAI.d.ts +14 -0
  363. package/dist/roguelike/MonsterAI.d.ts.map +1 -1
  364. package/dist/roguelike/MonsterAI.js +14 -0
  365. package/dist/roguelike/MonsterAI.js.map +1 -1
  366. package/dist/roguelike/MultiStageAbility.d.ts +16 -0
  367. package/dist/roguelike/MultiStageAbility.d.ts.map +1 -1
  368. package/dist/roguelike/MultiStageAbility.js +16 -0
  369. package/dist/roguelike/MultiStageAbility.js.map +1 -1
  370. package/dist/roguelike/Pathfinder.d.ts +23 -2
  371. package/dist/roguelike/Pathfinder.d.ts.map +1 -1
  372. package/dist/roguelike/Pathfinder.js +23 -2
  373. package/dist/roguelike/Pathfinder.js.map +1 -1
  374. package/dist/roguelike/Placement.d.ts +62 -0
  375. package/dist/roguelike/Placement.d.ts.map +1 -0
  376. package/dist/roguelike/Placement.js +79 -0
  377. package/dist/roguelike/Placement.js.map +1 -0
  378. package/dist/roguelike/RoomBuilders.d.ts +18 -1
  379. package/dist/roguelike/RoomBuilders.d.ts.map +1 -1
  380. package/dist/roguelike/RoomBuilders.js +18 -1
  381. package/dist/roguelike/RoomBuilders.js.map +1 -1
  382. package/dist/roguelike/Scheduler.d.ts +48 -1
  383. package/dist/roguelike/Scheduler.d.ts.map +1 -1
  384. package/dist/roguelike/Scheduler.js +58 -1
  385. package/dist/roguelike/Scheduler.js.map +1 -1
  386. package/dist/roguelike/Secrets.d.ts +13 -0
  387. package/dist/roguelike/Secrets.d.ts.map +1 -1
  388. package/dist/roguelike/Secrets.js +13 -0
  389. package/dist/roguelike/Secrets.js.map +1 -1
  390. package/dist/roguelike/Stealth.d.ts +13 -0
  391. package/dist/roguelike/Stealth.d.ts.map +1 -1
  392. package/dist/roguelike/Stealth.js +13 -0
  393. package/dist/roguelike/Stealth.js.map +1 -1
  394. package/dist/roguelike/Targeting.d.ts +45 -1
  395. package/dist/roguelike/Targeting.d.ts.map +1 -1
  396. package/dist/roguelike/Targeting.js +33 -1
  397. package/dist/roguelike/Targeting.js.map +1 -1
  398. package/dist/roguelike/TriggerTracker.d.ts +10 -0
  399. package/dist/roguelike/TriggerTracker.d.ts.map +1 -1
  400. package/dist/roguelike/TriggerTracker.js +10 -0
  401. package/dist/roguelike/TriggerTracker.js.map +1 -1
  402. package/dist/roguelike/generate.d.ts +41 -1
  403. package/dist/roguelike/generate.d.ts.map +1 -1
  404. package/dist/roguelike/generate.js +41 -1
  405. package/dist/roguelike/generate.js.map +1 -1
  406. package/dist/roguelike/index.d.ts +3 -1
  407. package/dist/roguelike/index.d.ts.map +1 -1
  408. package/dist/roguelike/index.js +1 -0
  409. package/dist/roguelike/index.js.map +1 -1
  410. package/dist/rpg/Collision.d.ts +19 -0
  411. package/dist/rpg/Collision.d.ts.map +1 -1
  412. package/dist/rpg/Collision.js +19 -0
  413. package/dist/rpg/Collision.js.map +1 -1
  414. package/dist/rpg/Event.d.ts +17 -0
  415. package/dist/rpg/Event.d.ts.map +1 -1
  416. package/dist/rpg/Event.js +17 -0
  417. package/dist/rpg/Event.js.map +1 -1
  418. package/dist/rpg/EventRunner.d.ts +14 -0
  419. package/dist/rpg/EventRunner.d.ts.map +1 -1
  420. package/dist/rpg/EventRunner.js +14 -0
  421. package/dist/rpg/EventRunner.js.map +1 -1
  422. package/dist/rpg/FreeMover.d.ts +14 -0
  423. package/dist/rpg/FreeMover.d.ts.map +1 -1
  424. package/dist/rpg/FreeMover.js +14 -0
  425. package/dist/rpg/FreeMover.js.map +1 -1
  426. package/dist/rpg/GameState.d.ts +14 -0
  427. package/dist/rpg/GameState.d.ts.map +1 -1
  428. package/dist/rpg/GameState.js +14 -0
  429. package/dist/rpg/GameState.js.map +1 -1
  430. package/dist/rpg/GridMover.d.ts +14 -0
  431. package/dist/rpg/GridMover.d.ts.map +1 -1
  432. package/dist/rpg/GridMover.js +14 -0
  433. package/dist/rpg/GridMover.js.map +1 -1
  434. package/dist/rpg/Marshal.d.ts +16 -0
  435. package/dist/rpg/Marshal.d.ts.map +1 -1
  436. package/dist/rpg/Marshal.js +16 -0
  437. package/dist/rpg/Marshal.js.map +1 -1
  438. package/dist/rpg/Quest.d.ts +15 -0
  439. package/dist/rpg/Quest.d.ts.map +1 -1
  440. package/dist/rpg/Quest.js +15 -0
  441. package/dist/rpg/Quest.js.map +1 -1
  442. package/dist/rpg/automap.d.ts +15 -0
  443. package/dist/rpg/automap.d.ts.map +1 -1
  444. package/dist/rpg/automap.js +15 -0
  445. package/dist/rpg/automap.js.map +1 -1
  446. package/dist/simulation/Runtime.d.ts +98 -0
  447. package/dist/simulation/Runtime.d.ts.map +1 -0
  448. package/dist/simulation/Runtime.js +91 -0
  449. package/dist/simulation/Runtime.js.map +1 -0
  450. package/dist/simulation/Scenario.d.ts +15 -0
  451. package/dist/simulation/Scenario.d.ts.map +1 -1
  452. package/dist/simulation/Scenario.js +15 -0
  453. package/dist/simulation/Scenario.js.map +1 -1
  454. package/dist/simulation/Turns.d.ts +11 -0
  455. package/dist/simulation/Turns.d.ts.map +1 -1
  456. package/dist/simulation/Turns.js +11 -0
  457. package/dist/simulation/Turns.js.map +1 -1
  458. package/dist/simulation/index.d.ts +10 -0
  459. package/dist/simulation/index.d.ts.map +1 -1
  460. package/dist/simulation/index.js +8 -0
  461. package/dist/simulation/index.js.map +1 -1
  462. package/dist/three-d/Models.d.ts +38 -1
  463. package/dist/three-d/Models.d.ts.map +1 -1
  464. package/dist/three-d/Models.js +66 -3
  465. package/dist/three-d/Models.js.map +1 -1
  466. package/dist/two-d/Game.d.ts +8 -11
  467. package/dist/two-d/Game.d.ts.map +1 -1
  468. package/dist/two-d/Game.js.map +1 -1
  469. package/dist/two-d/Scene2D.d.ts +2 -2
  470. package/dist/two-d/Scene2D.d.ts.map +1 -1
  471. package/dist/two-d/Scene2D.js.map +1 -1
  472. package/dist/two-d/pixi-interop.d.ts +13 -0
  473. package/dist/two-d/pixi-interop.d.ts.map +1 -0
  474. package/dist/two-d/pixi-interop.js +12 -0
  475. package/dist/two-d/pixi-interop.js.map +1 -0
  476. package/dist/two-d/render/ActorAnimator.d.ts +32 -0
  477. package/dist/two-d/render/ActorAnimator.d.ts.map +1 -1
  478. package/dist/two-d/render/ActorAnimator.js +21 -0
  479. package/dist/two-d/render/ActorAnimator.js.map +1 -1
  480. package/dist/two-d/render/AnimatedSprite.d.ts +28 -8
  481. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
  482. package/dist/two-d/render/AnimatedSprite.js +24 -4
  483. package/dist/two-d/render/AnimatedSprite.js.map +1 -1
  484. package/dist/two-d/render/Autotile.d.ts +33 -1
  485. package/dist/two-d/render/Autotile.d.ts.map +1 -1
  486. package/dist/two-d/render/Autotile.js +33 -1
  487. package/dist/two-d/render/Autotile.js.map +1 -1
  488. package/dist/two-d/render/Camera.d.ts +53 -1
  489. package/dist/two-d/render/Camera.d.ts.map +1 -1
  490. package/dist/two-d/render/Camera.js +36 -1
  491. package/dist/two-d/render/Camera.js.map +1 -1
  492. package/dist/two-d/render/Capabilities.d.ts +33 -0
  493. package/dist/two-d/render/Capabilities.d.ts.map +1 -1
  494. package/dist/two-d/render/Capabilities.js +33 -0
  495. package/dist/two-d/render/Capabilities.js.map +1 -1
  496. package/dist/two-d/render/ColorBlindness.d.ts +23 -0
  497. package/dist/two-d/render/ColorBlindness.d.ts.map +1 -1
  498. package/dist/two-d/render/ColorBlindness.js +23 -4
  499. package/dist/two-d/render/ColorBlindness.js.map +1 -1
  500. package/dist/two-d/render/ColorTransformBatcher.d.ts +75 -4
  501. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -1
  502. package/dist/two-d/render/ColorTransformBatcher.js +65 -4
  503. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -1
  504. package/dist/two-d/render/LayeredSprite.d.ts +22 -3
  505. package/dist/two-d/render/LayeredSprite.d.ts.map +1 -1
  506. package/dist/two-d/render/LayeredSprite.js +19 -0
  507. package/dist/two-d/render/LayeredSprite.js.map +1 -1
  508. package/dist/two-d/render/Minimap.d.ts +25 -1
  509. package/dist/two-d/render/Minimap.d.ts.map +1 -1
  510. package/dist/two-d/render/Minimap.js +25 -1
  511. package/dist/two-d/render/Minimap.js.map +1 -1
  512. package/dist/two-d/render/Particles.d.ts +26 -2
  513. package/dist/two-d/render/Particles.d.ts.map +1 -1
  514. package/dist/two-d/render/Particles.js +23 -0
  515. package/dist/two-d/render/Particles.js.map +1 -1
  516. package/dist/two-d/render/Projectile.d.ts +14 -0
  517. package/dist/two-d/render/Projectile.d.ts.map +1 -1
  518. package/dist/two-d/render/Projectile.js +14 -0
  519. package/dist/two-d/render/Projectile.js.map +1 -1
  520. package/dist/two-d/render/ScreenEffects.d.ts +15 -0
  521. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -1
  522. package/dist/two-d/render/ScreenEffects.js +15 -0
  523. package/dist/two-d/render/ScreenEffects.js.map +1 -1
  524. package/dist/two-d/render/Shape2D.d.ts +97 -0
  525. package/dist/two-d/render/Shape2D.d.ts.map +1 -0
  526. package/dist/two-d/render/Shape2D.js +97 -0
  527. package/dist/two-d/render/Shape2D.js.map +1 -0
  528. package/dist/two-d/render/SpriteSheet.d.ts +9 -6
  529. package/dist/two-d/render/SpriteSheet.d.ts.map +1 -1
  530. package/dist/two-d/render/SpriteSheet.js +7 -0
  531. package/dist/two-d/render/SpriteSheet.js.map +1 -1
  532. package/dist/two-d/render/StatusVisuals.d.ts +22 -0
  533. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -1
  534. package/dist/two-d/render/StatusVisuals.js +22 -0
  535. package/dist/two-d/render/StatusVisuals.js.map +1 -1
  536. package/dist/two-d/render/TileMap.d.ts +65 -3
  537. package/dist/two-d/render/TileMap.d.ts.map +1 -1
  538. package/dist/two-d/render/TileMap.js +65 -3
  539. package/dist/two-d/render/TileMap.js.map +1 -1
  540. package/dist/two-d/render/TiledMap.d.ts +9 -3
  541. package/dist/two-d/render/TiledMap.d.ts.map +1 -1
  542. package/dist/two-d/render/TiledMap.js +9 -3
  543. package/dist/two-d/render/TiledMap.js.map +1 -1
  544. package/dist/two-d/render/TintedSprite.d.ts +12 -4
  545. package/dist/two-d/render/TintedSprite.d.ts.map +1 -1
  546. package/dist/two-d/render/TintedSprite.js +14 -3
  547. package/dist/two-d/render/TintedSprite.js.map +1 -1
  548. package/dist/two-d/render/Types2D.d.ts +39 -0
  549. package/dist/two-d/render/Types2D.d.ts.map +1 -0
  550. package/dist/two-d/render/Types2D.js +18 -0
  551. package/dist/two-d/render/Types2D.js.map +1 -0
  552. package/dist/two-d/render/Viewport.d.ts +22 -0
  553. package/dist/two-d/render/Viewport.d.ts.map +1 -1
  554. package/dist/two-d/render/Viewport.js +22 -0
  555. package/dist/two-d/render/Viewport.js.map +1 -1
  556. package/dist/two-d/render/index.d.ts +3 -0
  557. package/dist/two-d/render/index.d.ts.map +1 -1
  558. package/dist/two-d/render/index.js +2 -0
  559. package/dist/two-d/render/index.js.map +1 -1
  560. package/dist/two-d/stage/DialogueStage.d.ts +16 -0
  561. package/dist/two-d/stage/DialogueStage.d.ts.map +1 -1
  562. package/dist/two-d/stage/DialogueStage.js +16 -0
  563. package/dist/two-d/stage/DialogueStage.js.map +1 -1
  564. package/dist/two-d/stage/script.d.ts +20 -0
  565. package/dist/two-d/stage/script.d.ts.map +1 -1
  566. package/dist/two-d/stage/script.js +20 -0
  567. package/dist/two-d/stage/script.js.map +1 -1
  568. package/dist/two-d/stage/twee.d.ts +11 -0
  569. package/dist/two-d/stage/twee.d.ts.map +1 -1
  570. package/dist/two-d/stage/twee.js +11 -0
  571. package/dist/two-d/stage/twee.js.map +1 -1
  572. package/dist/two-d/ui/Bar.d.ts +16 -3
  573. package/dist/two-d/ui/Bar.d.ts.map +1 -1
  574. package/dist/two-d/ui/Bar.js +16 -1
  575. package/dist/two-d/ui/Bar.js.map +1 -1
  576. package/dist/two-d/ui/BitmapLabel.d.ts +23 -1
  577. package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -1
  578. package/dist/two-d/ui/BitmapLabel.js +23 -1
  579. package/dist/two-d/ui/BitmapLabel.js.map +1 -1
  580. package/dist/two-d/ui/Button.d.ts +19 -3
  581. package/dist/two-d/ui/Button.d.ts.map +1 -1
  582. package/dist/two-d/ui/Button.js +15 -0
  583. package/dist/two-d/ui/Button.js.map +1 -1
  584. package/dist/two-d/ui/FloatingText.d.ts +15 -0
  585. package/dist/two-d/ui/FloatingText.d.ts.map +1 -1
  586. package/dist/two-d/ui/FloatingText.js +15 -0
  587. package/dist/two-d/ui/FloatingText.js.map +1 -1
  588. package/dist/two-d/ui/HelpScreen.d.ts +16 -0
  589. package/dist/two-d/ui/HelpScreen.d.ts.map +1 -1
  590. package/dist/two-d/ui/HelpScreen.js +23 -3
  591. package/dist/two-d/ui/HelpScreen.js.map +1 -1
  592. package/dist/two-d/ui/IconGrid.d.ts +27 -1
  593. package/dist/two-d/ui/IconGrid.d.ts.map +1 -1
  594. package/dist/two-d/ui/IconGrid.js +37 -5
  595. package/dist/two-d/ui/IconGrid.js.map +1 -1
  596. package/dist/two-d/ui/Label.d.ts +10 -0
  597. package/dist/two-d/ui/Label.d.ts.map +1 -1
  598. package/dist/two-d/ui/Label.js +10 -0
  599. package/dist/two-d/ui/Label.js.map +1 -1
  600. package/dist/two-d/ui/ListView.d.ts +21 -1
  601. package/dist/two-d/ui/ListView.d.ts.map +1 -1
  602. package/dist/two-d/ui/ListView.js +19 -0
  603. package/dist/two-d/ui/ListView.js.map +1 -1
  604. package/dist/two-d/ui/LoadingScreen.d.ts +24 -1
  605. package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -1
  606. package/dist/two-d/ui/LoadingScreen.js +24 -1
  607. package/dist/two-d/ui/LoadingScreen.js.map +1 -1
  608. package/dist/two-d/ui/MessageBox.d.ts +21 -2
  609. package/dist/two-d/ui/MessageBox.d.ts.map +1 -1
  610. package/dist/two-d/ui/MessageBox.js +19 -0
  611. package/dist/two-d/ui/MessageBox.js.map +1 -1
  612. package/dist/two-d/ui/NinePatch.d.ts +15 -2
  613. package/dist/two-d/ui/NinePatch.d.ts.map +1 -1
  614. package/dist/two-d/ui/NinePatch.js +13 -1
  615. package/dist/two-d/ui/NinePatch.js.map +1 -1
  616. package/dist/two-d/ui/RebindScreen.d.ts +15 -0
  617. package/dist/two-d/ui/RebindScreen.d.ts.map +1 -1
  618. package/dist/two-d/ui/RebindScreen.js +15 -0
  619. package/dist/two-d/ui/RebindScreen.js.map +1 -1
  620. package/dist/two-d/ui/StatsScreen.d.ts +15 -0
  621. package/dist/two-d/ui/StatsScreen.d.ts.map +1 -1
  622. package/dist/two-d/ui/StatsScreen.js +15 -0
  623. package/dist/two-d/ui/StatsScreen.js.map +1 -1
  624. package/dist/two-d/ui/Toast.d.ts +14 -1
  625. package/dist/two-d/ui/Toast.d.ts.map +1 -1
  626. package/dist/two-d/ui/Toast.js +12 -0
  627. package/dist/two-d/ui/Toast.js.map +1 -1
  628. package/dist/two-d/ui/Tooltip.d.ts +14 -0
  629. package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
  630. package/dist/two-d/ui/Tooltip.js +14 -0
  631. package/dist/two-d/ui/Tooltip.js.map +1 -1
  632. package/dist/two-d/ui/VerticalLabel.d.ts +18 -0
  633. package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -1
  634. package/dist/two-d/ui/VerticalLabel.js +18 -0
  635. package/dist/two-d/ui/VerticalLabel.js.map +1 -1
  636. package/dist/two-d/ui/Window.d.ts +12 -0
  637. package/dist/two-d/ui/Window.d.ts.map +1 -1
  638. package/dist/two-d/ui/Window.js +12 -0
  639. package/dist/two-d/ui/Window.js.map +1 -1
  640. package/dist/two-d/ui/theme.d.ts +47 -3
  641. package/dist/two-d/ui/theme.d.ts.map +1 -1
  642. package/dist/two-d/ui/theme.js +45 -1
  643. package/dist/two-d/ui/theme.js.map +1 -1
  644. package/dist/version.d.ts +1 -1
  645. package/dist/version.js +1 -1
  646. package/dist/world/Encounters.d.ts +12 -0
  647. package/dist/world/Encounters.d.ts.map +1 -1
  648. package/dist/world/Encounters.js.map +1 -1
  649. package/dist/world/Environment.d.ts +15 -1
  650. package/dist/world/Environment.d.ts.map +1 -1
  651. package/dist/world/Environment.js +15 -1
  652. package/dist/world/Environment.js.map +1 -1
  653. package/dist/world/Overworld.d.ts +14 -0
  654. package/dist/world/Overworld.d.ts.map +1 -1
  655. package/dist/world/Overworld.js +14 -0
  656. package/dist/world/Overworld.js.map +1 -1
  657. package/dist/world/TurnClock.d.ts +16 -0
  658. package/dist/world/TurnClock.d.ts.map +1 -1
  659. package/dist/world/TurnClock.js +16 -0
  660. package/dist/world/TurnClock.js.map +1 -1
  661. package/dist/world/World.d.ts +14 -0
  662. package/dist/world/World.d.ts.map +1 -1
  663. package/dist/world/World.js +14 -0
  664. package/dist/world/World.js.map +1 -1
  665. package/package.json +10 -3
@@ -1,14 +1,77 @@
1
1
  import '@babylonjs/loaders/glTF/index.js';
2
- import { ImportMeshAsync } from '@babylonjs/core/Loading/sceneLoader.js';
2
+ import { ImportMeshAsync, LoadAssetContainerAsync } from '@babylonjs/core/Loading/sceneLoader.js';
3
3
  import { resolve } from '../assets/paths.js';
4
+ function resolveSource(source) {
5
+ return typeof source === 'string' && !/^(?:data|blob|https?):/i.test(source) ? resolve(source) : source;
6
+ }
4
7
  /**
5
8
  * Loads glTF/GLB from an asset path, data/blob/http(s) URI, File, or in-memory byte view. An
6
9
  * asset path is resolved through `mwg/assets` first, the same way every other loader in the
7
10
  * framework becomes `file://`-safe once assets are compiled to `data:` URIs; a URI that is
8
11
  * already resolved is passed through unchanged.
12
+ *
13
+ * For a single copy of a model this is the whole job; for several copies of the *same*
14
+ * model, `loadModelContainer3D` fetches and parses once and instantiates independent copies
15
+ * from it - calling this a second time for the same source imports and parses it again.
9
16
  */
10
17
  export function loadModel3D(source, scene, options) {
11
- const resolved = typeof source === 'string' && !/^(?:data|blob|https?):/i.test(source) ? resolve(source) : source;
12
- return ImportMeshAsync(resolved, scene, options);
18
+ return ImportMeshAsync(resolveSource(source), scene, options);
19
+ }
20
+ const containerCache = new Map();
21
+ /**
22
+ * Loads a model once per resolved source and caches the in-flight/loaded `AssetContainer`,
23
+ * so a second call for the same source returns the same container instead of importing and
24
+ * parsing it again over the network. A container is not itself scene content - call
25
+ * `container.instantiateModelsToScene()` for each independent copy a game wants to place,
26
+ * which is Babylon's own way to get several unaliased instances of one loaded model without
27
+ * a second fetch; `loadModel3D` imports straight into the scene instead, for the common case
28
+ * of only ever wanting one copy.
29
+ *
30
+ * Only caches when `source` is a string (an asset path or already-resolved URI) - a `File`
31
+ * or in-memory byte view has no stable identity to key a cache on, so those always load
32
+ * fresh, the same way `loadModel3D` never tries to resolve them as a path either.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * import { loadModelContainer3D, isModelContainerLoaded, releaseModelContainer } from '@datamoc/mw_games/3d/models';
37
+ *
38
+ * declare const scene: import('@babylonjs/core/scene.js').Scene;
39
+ *
40
+ * const container = await loadModelContainer3D('models/tree.glb', scene);
41
+ * const treeA = container.instantiateModelsToScene();
42
+ * const treeB = container.instantiateModelsToScene(); // a second, independent copy - no re-fetch
43
+ *
44
+ * console.log(isModelContainerLoaded('models/tree.glb')); // true
45
+ * releaseModelContainer('models/tree.glb'); // frees the container once every copy is placed
46
+ * ```
47
+ */
48
+ export function loadModelContainer3D(source, scene, options) {
49
+ const resolved = resolveSource(source);
50
+ if (typeof resolved !== 'string')
51
+ return LoadAssetContainerAsync(resolved, scene, options);
52
+ const cached = containerCache.get(resolved);
53
+ if (cached)
54
+ return cached;
55
+ const promise = LoadAssetContainerAsync(resolved, scene, options);
56
+ containerCache.set(resolved, promise);
57
+ //a rejected load must not poison the cache - the next call gets a fresh attempt
58
+ promise.catch(() => containerCache.delete(resolved));
59
+ return promise;
60
+ }
61
+ /** true once `loadModelContainer3D` has resolved for this source and it has not since been `releaseModelContainer`d */
62
+ export function isModelContainerLoaded(source) {
63
+ const resolved = resolveSource(source);
64
+ return typeof resolved === 'string' && containerCache.has(resolved);
65
+ }
66
+ /** disposes and forgets a cached container; a source never loaded (or already released) is silently skipped */
67
+ export async function releaseModelContainer(source) {
68
+ const resolved = resolveSource(source);
69
+ if (typeof resolved !== 'string')
70
+ return;
71
+ const cached = containerCache.get(resolved);
72
+ if (!cached)
73
+ return;
74
+ containerCache.delete(resolved);
75
+ (await cached).dispose();
13
76
  }
14
77
  //# sourceMappingURL=Models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Models.js","sourceRoot":"","sources":["../../src/three-d/Models.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAIzE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAqB,EAAE,KAAY,EAAE,OAA2B;IAC3F,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClH,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"Models.js","sourceRoot":"","sources":["../../src/three-d/Models.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKlG,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,SAAS,aAAa,CAAC,MAAqB;IAC3C,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzG,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,MAAqB,EAAE,KAAY,EAAE,OAA2B;IAC3F,OAAO,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB,EAAE,KAAY,EAAE,OAAmC;IAC5G,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAE3F,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,gFAAgF;IAChF,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,uHAAuH;AACvH,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,+GAA+G;AAC/G,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAc;IACzD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO;IAEzC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1B,CAAC"}
@@ -31,18 +31,15 @@ export interface GameOptions {
31
31
  */
32
32
  resizeTo?: HTMLElement | Window;
33
33
  /**
34
- * Pixi extension registrations to run before the renderer is built, such as
35
- * `mwg/render`'s `registerColorTransform` for `TintedSprite`.
34
+ * Pixi extension registrations to run before the renderer is built.
36
35
  *
37
- * `mwg/core` does not import `mwg/render` itself - a game that only ever imports
38
- * `mwg/core` should not find the whole render module compiled in regardless. A game
39
- * that does use `TintedSprite` (directly, or through `TileMap`/`DialogueStage`/
40
- * `AnimatedSprite`, which are all built on it) passes its registration function here:
41
- *
42
- * ```ts
43
- * import { registerColorTransform } from 'mw_games/render';
44
- * new Game({ extensions: [registerColorTransform] });
45
- * ```
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.
46
43
  */
47
44
  extensions?: readonly (() => void)[];
48
45
  }
@@ -1 +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;;;;;;;;;;;;;OAaG;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
+ {"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 +1 @@
1
- {"version":3,"file":"Game.js","sourceRoot":"","sources":["../../src/two-d/Game.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Game.js","sourceRoot":"","sources":["../../src/two-d/Game.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Container } from 'pixi.js';
2
1
  import { Scene } from '../core/Scene.ts';
2
+ import type { Container2D } from './render/Types2D.ts';
3
3
  /**
4
4
  * A scene that draws through Pixi: `core.Scene`'s lifecycle plus the container everything
5
5
  * this screen shows hangs off.
@@ -12,7 +12,7 @@ import { Scene } from '../core/Scene.ts';
12
12
  */
13
13
  export declare abstract class Scene2D extends Scene {
14
14
  /** everything this scene draws hangs off here */
15
- readonly stage: Container<import("pixi.js").ContainerChild>;
15
+ readonly stage: Container2D;
16
16
  protected teardown(): void;
17
17
  }
18
18
  export type Scene2DClass = new () => Scene2D;
@@ -1 +1 @@
1
- {"version":3,"file":"Scene2D.d.ts","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;AAEzC;;;;;;;;;GASG;AACH,8BAAsB,OAAQ,SAAQ,KAAK;IAC1C,iDAAiD;IACjD,QAAQ,CAAC,KAAK,8CAAmB;IAEjC,UAAmB,QAAQ,IAAI,IAAI,CAElC;CACD;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,OAAO,CAAC"}
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"}
@@ -1 +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;AAEzC;;;;;;;;;GASG;AACH,MAAM,OAAgB,OAAQ,SAAQ,KAAK;IAA3C;;QACC,iDAAiD;QACxC,UAAK,GAAG,IAAI,SAAS,EAAE,CAAC;IAKlC,CAAC;IAHmB,QAAQ;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;CACD"}
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,13 @@
1
+ /**
2
+ * Explicit, exceptional backend access.
3
+ *
4
+ * A normal 2D game should never need this: `two-d`'s own facade (`Container2D`, `Texture2D`,
5
+ * `Sprite`/`AnimatedSprite`/`TintedSprite`, `NinePatch`, `SpriteSheet`) covers ordinary needs
6
+ * without naming a `pixi.js` type. This module exists for the rare case where a game needs a
7
+ * Pixi-specific effect the facade does not cover yet - importing from here rather than from
8
+ * `pixi.js` directly keeps that dependency visible and confined to one file, instead of
9
+ * spreading `pixi.js` imports through the game's own source.
10
+ */
11
+ export { Container, Sprite, Texture, Graphics, Rectangle, Text } from 'pixi.js';
12
+ export type { SpriteOptions } from 'pixi.js';
13
+ //# sourceMappingURL=pixi-interop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixi-interop.d.ts","sourceRoot":"","sources":["../../src/two-d/pixi-interop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Explicit, exceptional backend access.
3
+ *
4
+ * A normal 2D game should never need this: `two-d`'s own facade (`Container2D`, `Texture2D`,
5
+ * `Sprite`/`AnimatedSprite`/`TintedSprite`, `NinePatch`, `SpriteSheet`) covers ordinary needs
6
+ * without naming a `pixi.js` type. This module exists for the rare case where a game needs a
7
+ * Pixi-specific effect the facade does not cover yet - importing from here rather than from
8
+ * `pixi.js` directly keeps that dependency visible and confined to one file, instead of
9
+ * spreading `pixi.js` imports through the game's own source.
10
+ */
11
+ export { Container, Sprite, Texture, Graphics, Rectangle, Text } from 'pixi.js';
12
+ //# sourceMappingURL=pixi-interop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixi-interop.js","sourceRoot":"","sources":["../../src/two-d/pixi-interop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC"}
@@ -1,6 +1,17 @@
1
1
  import type { AnimatedSprite } from './AnimatedSprite.ts';
2
2
  /** the three states any character's animation ever needs to be in */
3
3
  export type ActorAnimationState = 'idle' | 'move' | 'action';
4
+ /**
5
+ * @example
6
+ * ```ts
7
+ * import type { ActorAnimatorOptions } from '@datamoc/mw_games/two-d/render';
8
+ *
9
+ * const options: ActorAnimatorOptions = {
10
+ * animationName: (state, facing) => `${state}-${facing}`,
11
+ * variant: 'down',
12
+ * };
13
+ * ```
14
+ */
4
15
  export interface ActorAnimatorOptions {
5
16
  /**
6
17
  * Names a state's animation, given whatever varies it - a facing direction for a grid
@@ -30,6 +41,27 @@ export interface ActorAnimatorOptions {
30
41
  *
31
42
  * This owns the sprite's `onFinish` hook entirely; a game driving one through
32
43
  * `ActorAnimator` should not also set `onFinish` itself.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { ActorAnimator, AnimatedSprite, SpriteSheet } from '@datamoc/mw_games/two-d/render';
48
+ *
49
+ * declare const sheet: SpriteSheet;
50
+ *
51
+ * const hero = new AnimatedSprite();
52
+ * hero.add('idle-down', sheet.pick(0), { fps: 2 });
53
+ * hero.add('move-down', sheet.range(1, 4), { fps: 10 });
54
+ * hero.add('action-down', sheet.range(5, 7), { fps: 12, loop: false });
55
+ *
56
+ * const animator = new ActorAnimator(hero, {
57
+ * animationName: (state, facing) => `${state}-${facing}`,
58
+ * variant: 'down',
59
+ * });
60
+ *
61
+ * animator.setMoving(true); // walk cycle starts
62
+ * animator.playAction(); // an attack swing cuts in over the walk cycle
63
+ * console.log(animator.state); // 'action' - overrides idle/move while it plays
64
+ * ```
33
65
  */
34
66
  export declare class ActorAnimator {
35
67
  private sprite;
@@ -1 +1 @@
1
- {"version":3,"file":"ActorAnimator.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/ActorAnimator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACpC;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvE,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAA0D;IAE/E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,EAOhE;IAED,2FAA2F;IAC3F,IAAI,KAAK,IAAI,mBAAmB,CAE/B;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAIjD;IAED;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAMlD;IAED,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,KAAK;CAIb"}
1
+ {"version":3,"file":"ActorAnimator.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/ActorAnimator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvE,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAA0D;IAE/E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,EAOhE;IAED,2FAA2F;IAC3F,IAAI,KAAK,IAAI,mBAAmB,CAE/B;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAIjD;IAED;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAMlD;IAED,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,KAAK;CAIb"}
@@ -15,6 +15,27 @@
15
15
  *
16
16
  * This owns the sprite's `onFinish` hook entirely; a game driving one through
17
17
  * `ActorAnimator` should not also set `onFinish` itself.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { ActorAnimator, AnimatedSprite, SpriteSheet } from '@datamoc/mw_games/two-d/render';
22
+ *
23
+ * declare const sheet: SpriteSheet;
24
+ *
25
+ * const hero = new AnimatedSprite();
26
+ * hero.add('idle-down', sheet.pick(0), { fps: 2 });
27
+ * hero.add('move-down', sheet.range(1, 4), { fps: 10 });
28
+ * hero.add('action-down', sheet.range(5, 7), { fps: 12, loop: false });
29
+ *
30
+ * const animator = new ActorAnimator(hero, {
31
+ * animationName: (state, facing) => `${state}-${facing}`,
32
+ * variant: 'down',
33
+ * });
34
+ *
35
+ * animator.setMoving(true); // walk cycle starts
36
+ * animator.playAction(); // an attack swing cuts in over the walk cycle
37
+ * console.log(animator.state); // 'action' - overrides idle/move while it plays
38
+ * ```
18
39
  */
19
40
  export class ActorAnimator {
20
41
  constructor(sprite, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"ActorAnimator.js","sourceRoot":"","sources":["../../../src/two-d/render/ActorAnimator.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,aAAa;IAQzB,YAAY,MAAsB,EAAE,OAA6B;QAHzD,eAAU,GAAoB,MAAM,CAAC;QACrC,aAAQ,GAAG,KAAK,CAAC;QAGxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,2FAA2F;IAC3F,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACnD,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,MAAe,EAAE,OAAgB;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,OAAgB,EAAE,OAAO,GAAG,KAAK;QAC3C,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;YAAE,OAAO;QACtC,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAElD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAEO,cAAc;QACrB,gFAAgF;QAChF,iFAAiF;QACjF,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,KAA0B;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC;IACvE,CAAC;CACD"}
1
+ {"version":3,"file":"ActorAnimator.js","sourceRoot":"","sources":["../../../src/two-d/render/ActorAnimator.ts"],"names":[],"mappings":"AA8BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,OAAO,aAAa;IAQzB,YAAY,MAAsB,EAAE,OAA6B;QAHzD,eAAU,GAAoB,MAAM,CAAC;QACrC,aAAQ,GAAG,KAAK,CAAC;QAGxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,2FAA2F;IAC3F,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACnD,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,MAAe,EAAE,OAAgB;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,OAAgB,EAAE,OAAO,GAAG,KAAK;QAC3C,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;YAAE,OAAO;QACtC,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAElD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAEO,cAAc;QACrB,gFAAgF;QAChF,iFAAiF;QACjF,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,KAA0B;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC;IACvE,CAAC;CACD"}
@@ -1,34 +1,54 @@
1
- import type { Texture } from 'pixi.js';
2
1
  import { TintedSprite } from './TintedSprite.ts';
2
+ import type { Texture2D } from './Types2D.ts';
3
3
  export interface AnimationOptions {
4
4
  /** frames per second */
5
5
  fps?: number;
6
6
  /** whether to start again at the end, or hold on the last frame */
7
7
  loop?: boolean;
8
8
  }
9
+ /**
10
+ * @example
11
+ * ```ts
12
+ * import { Animation } from '@datamoc/mw_games/two-d/render';
13
+ * import type { Texture2D } from '@datamoc/mw_games/two-d/render';
14
+ *
15
+ * declare const frames: Texture2D[];
16
+ *
17
+ * const walk = new Animation(frames, { fps: 10 });
18
+ * console.log(walk.duration); // frames.length / 10, in seconds
19
+ * ```
20
+ */
9
21
  export declare class Animation {
10
- readonly frames: readonly Texture[];
22
+ readonly frames: readonly Texture2D[];
11
23
  readonly frameDuration: number;
12
24
  readonly loop: boolean;
13
- constructor(frames: readonly Texture[], { fps, loop }?: AnimationOptions);
25
+ constructor(frames: readonly Texture2D[], { fps, loop }?: AnimationOptions);
14
26
  get duration(): number;
15
27
  }
16
28
  /**
17
29
  * A sprite that plays named animations, and can still be tinted.
18
30
  *
19
31
  * Animations are registered once and played by name, which is how a character ends up
20
- * reading as `hero.play('walk')` rather than juggling frame arrays:
32
+ * reading as `hero.play('walk')` rather than juggling frame arrays.
21
33
  *
34
+ * Nothing advances on its own: call `update(dt)` from the scene, or add the sprite to a
35
+ * `SpriteGroup`, so that pausing the game pauses the animations with it.
36
+ *
37
+ * @example
22
38
  * ```ts
39
+ * import { AnimatedSprite, SpriteSheet } from '@datamoc/mw_games/two-d/render';
40
+ *
41
+ * declare const sheet: SpriteSheet;
42
+ *
23
43
  * const hero = new AnimatedSprite();
24
44
  * hero.add('idle', sheet.pick(0, 0, 0, 1), { fps: 2 });
25
45
  * hero.add('walk', sheet.range(6, 10), { fps: 10 });
26
46
  * hero.add('die', sheet.range(11, 14), { fps: 10, loop: false });
27
47
  * hero.play('idle');
28
- * ```
29
48
  *
30
- * Nothing advances on its own: call `update(dt)` from the scene, or add the sprite to a
31
- * `SpriteGroup`, so that pausing the game pauses the animations with it.
49
+ * hero.onFinish = (name) => console.log(`${name} finished`);
50
+ * hero.update(1 / 60); // advance one frame's worth of time
51
+ * ```
32
52
  */
33
53
  export declare class AnimatedSprite extends TintedSprite {
34
54
  private animations;
@@ -40,7 +60,7 @@ export declare class AnimatedSprite extends TintedSprite {
40
60
  /** fires once when a non-looping animation reaches its last frame */
41
61
  onFinish: ((name: string) => void) | null;
42
62
  paused: boolean;
43
- add(name: string, frames: readonly Texture[], options?: AnimationOptions): this;
63
+ add(name: string, frames: readonly Texture2D[], options?: AnimationOptions): this;
44
64
  has(name: string): boolean;
45
65
  get playing(): string | null;
46
66
  get isFinished(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AnimatedSprite.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/AnimatedSprite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAChC,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,qBAAa,SAAS;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAEvB,YAAY,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE,GAAQ,EAAE,IAAW,EAAE,GAAE,gBAAqB,EAKvF;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;CACD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC/C,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAS;IAEzB,qEAAqE;IACrE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEjD,MAAM,UAAS;IAEf,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAG9E;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAE3B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAcxC;IAED,IAAI,IAAI,IAAI,CAGX;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAuBvB;CACD"}
1
+ {"version":3,"file":"AnimatedSprite.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/AnimatedSprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,SAAS;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAEvB,YAAY,MAAM,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,GAAQ,EAAE,IAAW,EAAE,GAAE,gBAAqB,EAKzF;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;CACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC/C,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAS;IAEzB,qEAAqE;IACrE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEjD,MAAM,UAAS;IAEf,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAGhF;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAE3B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAcxC;IAED,IAAI,IAAI,IAAI,CAGX;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAuBvB;CACD"}
@@ -1,4 +1,16 @@
1
1
  import { TintedSprite } from './TintedSprite.js';
2
+ /**
3
+ * @example
4
+ * ```ts
5
+ * import { Animation } from '@datamoc/mw_games/two-d/render';
6
+ * import type { Texture2D } from '@datamoc/mw_games/two-d/render';
7
+ *
8
+ * declare const frames: Texture2D[];
9
+ *
10
+ * const walk = new Animation(frames, { fps: 10 });
11
+ * console.log(walk.duration); // frames.length / 10, in seconds
12
+ * ```
13
+ */
2
14
  export class Animation {
3
15
  constructor(frames, { fps = 10, loop = true } = {}) {
4
16
  if (frames.length === 0)
@@ -15,18 +27,26 @@ export class Animation {
15
27
  * A sprite that plays named animations, and can still be tinted.
16
28
  *
17
29
  * Animations are registered once and played by name, which is how a character ends up
18
- * reading as `hero.play('walk')` rather than juggling frame arrays:
30
+ * reading as `hero.play('walk')` rather than juggling frame arrays.
19
31
  *
32
+ * Nothing advances on its own: call `update(dt)` from the scene, or add the sprite to a
33
+ * `SpriteGroup`, so that pausing the game pauses the animations with it.
34
+ *
35
+ * @example
20
36
  * ```ts
37
+ * import { AnimatedSprite, SpriteSheet } from '@datamoc/mw_games/two-d/render';
38
+ *
39
+ * declare const sheet: SpriteSheet;
40
+ *
21
41
  * const hero = new AnimatedSprite();
22
42
  * hero.add('idle', sheet.pick(0, 0, 0, 1), { fps: 2 });
23
43
  * hero.add('walk', sheet.range(6, 10), { fps: 10 });
24
44
  * hero.add('die', sheet.range(11, 14), { fps: 10, loop: false });
25
45
  * hero.play('idle');
26
- * ```
27
46
  *
28
- * Nothing advances on its own: call `update(dt)` from the scene, or add the sprite to a
29
- * `SpriteGroup`, so that pausing the game pauses the animations with it.
47
+ * hero.onFinish = (name) => console.log(`${name} finished`);
48
+ * hero.update(1 / 60); // advance one frame's worth of time
49
+ * ```
30
50
  */
31
51
  export class AnimatedSprite extends TintedSprite {
32
52
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"AnimatedSprite.js","sourceRoot":"","sources":["../../../src/two-d/render/AnimatedSprite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimatedSprite.js","sourceRoot":"","sources":["../../../src/two-d/render/AnimatedSprite.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,30 @@ export interface NeighborMask {
24
24
  * different engine's autotile layout will need its frames reordered into this one. What is
25
25
  * guaranteed: `BLOB_SHAPES` lists all 47 shapes in the exact order `blobIndex` returns them
26
26
  * in, so a tool (or a person, reading it once) can draw or arrange frames against it directly.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * import { BLOB_SHAPES } from '@datamoc/mw_games/two-d/render';
31
+ *
32
+ * console.log(BLOB_SHAPES.length); // 47
33
+ * console.log(BLOB_SHAPES[0]); // { n: false, e: false, s: false, w: false, ne: false, se: false, sw: false, nw: false }
34
+ * ```
27
35
  */
28
36
  export declare const BLOB_SHAPES: readonly NeighborMask[];
29
- /** the blob index (0 to 46) for one cell's 8-neighbour membership test */
37
+ /**
38
+ * the blob index (0 to 46) for one cell's 8-neighbour membership test
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * import { blobIndex } from '@datamoc/mw_games/two-d/render';
43
+ *
44
+ * const surroundedOnAllSides = blobIndex({
45
+ * n: true, e: true, s: true, w: true,
46
+ * ne: true, se: true, sw: true, nw: true,
47
+ * });
48
+ * console.log(surroundedOnAllSides); // 46 - the fully-interior shape
49
+ * ```
50
+ */
30
51
  export declare function blobIndex(neighbors: NeighborMask): number;
31
52
  /**
32
53
  * One frame per cell of a terrain, autotiled from a same-terrain test alone.
@@ -37,6 +58,17 @@ export declare function blobIndex(neighbors: NeighborMask): number;
37
58
  * @param frames the 47 frames a `blobIndex` of 0 to 46 selects between, drawn (or arranged)
38
59
  * against `BLOB_SHAPES`
39
60
  * @returns one frame index per cell, row-major, `EMPTY` wherever `sameTerrain` is false
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * import { autotileFrames, BLOB_SHAPES } from '@datamoc/mw_games/two-d/render';
65
+ *
66
+ * const water = new Set([0, 1, 10, 11]); // a 2x2 pond in a wider grid
67
+ * const frames = Array.from({ length: BLOB_SHAPES.length }, (_, index) => index); // frame N = shape N
68
+ *
69
+ * const cellFrames = autotileFrames(10, 10, (x, y) => water.has(y * 10 + x), frames);
70
+ * console.log(cellFrames[0]); // the blob frame for the pond's top-left corner
71
+ * ```
40
72
  */
41
73
  export declare function autotileFrames(width: number, height: number, sameTerrain: (x: number, y: number) => boolean, frames: readonly number[]): Int32Array;
42
74
  //# sourceMappingURL=Autotile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Autotile.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/Autotile.ts"],"names":[],"mappings":"AAEA,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;CACZ;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,YAAY,EAAsB,CAAC;AAoEtE,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,EAC9C,MAAM,EAAE,SAAS,MAAM,EAAE,GACvB,UAAU,CA+BZ"}
1
+ {"version":3,"file":"Autotile.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/Autotile.ts"],"names":[],"mappings":"AAEA,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;IACX,CAAC,EAAE,OAAO,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;CACZ;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,YAAY,EAAsB,CAAC;AAoEtE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,EAC9C,MAAM,EAAE,SAAS,MAAM,EAAE,GACvB,UAAU,CA+BZ"}
@@ -14,6 +14,14 @@ import { EMPTY } from './TileMap.js';
14
14
  * different engine's autotile layout will need its frames reordered into this one. What is
15
15
  * guaranteed: `BLOB_SHAPES` lists all 47 shapes in the exact order `blobIndex` returns them
16
16
  * in, so a tool (or a person, reading it once) can draw or arrange frames against it directly.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { BLOB_SHAPES } from '@datamoc/mw_games/two-d/render';
21
+ *
22
+ * console.log(BLOB_SHAPES.length); // 47
23
+ * console.log(BLOB_SHAPES[0]); // { n: false, e: false, s: false, w: false, ne: false, se: false, sw: false, nw: false }
24
+ * ```
17
25
  */
18
26
  export const BLOB_SHAPES = buildBlobShapes();
19
27
  const blobIndexByMask = new Map(BLOB_SHAPES.map((shape, index) => [maskOf(shape), index]));
@@ -73,7 +81,20 @@ function buildBlobShapes() {
73
81
  shapes.sort((a, b) => a.mask - b.mask);
74
82
  return shapes.map((entry) => entry.shape);
75
83
  }
76
- /** the blob index (0 to 46) for one cell's 8-neighbour membership test */
84
+ /**
85
+ * the blob index (0 to 46) for one cell's 8-neighbour membership test
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * import { blobIndex } from '@datamoc/mw_games/two-d/render';
90
+ *
91
+ * const surroundedOnAllSides = blobIndex({
92
+ * n: true, e: true, s: true, w: true,
93
+ * ne: true, se: true, sw: true, nw: true,
94
+ * });
95
+ * console.log(surroundedOnAllSides); // 46 - the fully-interior shape
96
+ * ```
97
+ */
77
98
  export function blobIndex(neighbors) {
78
99
  return blobIndexByMask.get(maskOf(neighbors));
79
100
  }
@@ -86,6 +107,17 @@ export function blobIndex(neighbors) {
86
107
  * @param frames the 47 frames a `blobIndex` of 0 to 46 selects between, drawn (or arranged)
87
108
  * against `BLOB_SHAPES`
88
109
  * @returns one frame index per cell, row-major, `EMPTY` wherever `sameTerrain` is false
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * import { autotileFrames, BLOB_SHAPES } from '@datamoc/mw_games/two-d/render';
114
+ *
115
+ * const water = new Set([0, 1, 10, 11]); // a 2x2 pond in a wider grid
116
+ * const frames = Array.from({ length: BLOB_SHAPES.length }, (_, index) => index); // frame N = shape N
117
+ *
118
+ * const cellFrames = autotileFrames(10, 10, (x, y) => water.has(y * 10 + x), frames);
119
+ * console.log(cellFrames[0]); // the blob frame for the pond's top-left corner
120
+ * ```
89
121
  */
90
122
  export function autotileFrames(width, height, sameTerrain, frames) {
91
123
  if (frames.length !== BLOB_SHAPES.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"Autotile.js","sourceRoot":"","sources":["../../../src/two-d/render/Autotile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Autotile.js","sourceRoot":"","sources":["../../../src/two-d/render/Autotile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAcrC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,WAAW,GAA4B,eAAe,EAAE,CAAC;AAEtE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAiB,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAE3G,SAAS,MAAM,CAAC,KAAmB;IAClC,sFAAsF;IACtF,kEAAkE;IAClE,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAE1C,OAAO,CACN,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAiD,EAAE,CAAC;IAEhE,yFAAyF;IACzF,yFAAyF;IACzF,gFAAgF;IAChF,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAiB;YAC3B,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACnB,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACnB,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACnB,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACnB,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;YACrB,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;YACrB,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;YACrB,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;SACtB,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,6EAA6E;QAC7E,sFAAsF;QACtF,MAAM,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,KAAK,EAAE;gBACN,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;gBAClC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;gBAClC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;gBAClC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;aAClC;SACD,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,SAAuB;IAChD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAE,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,cAAc,CAC7B,KAAa,EACb,MAAc,EACd,WAA8C,EAC9C,MAAyB;IAEzB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,CAAC,MAAM,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxB,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;gBACnB,SAAS;YACV,CAAC;YAED,MAAM,SAAS,GAAiB;gBAC/B,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,EAAE,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC7B,EAAE,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC7B,EAAE,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC7B,EAAE,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;aAC7B,CAAC;YAEF,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}