@datamoc/mw_games 0.4.1 → 0.4.3

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 (260) hide show
  1. package/README.md +2 -2
  2. package/dist/actors/ItemStatusEffect.d.ts +1 -1
  3. package/dist/actors/ItemStatusEffect.d.ts.map +1 -1
  4. package/dist/actors/ItemStatusEffect.js +2 -11
  5. package/dist/actors/ItemStatusEffect.js.map +1 -1
  6. package/dist/actors/StatusEffect.d.ts +11 -0
  7. package/dist/actors/StatusEffect.d.ts.map +1 -1
  8. package/dist/actors/StatusEffect.js +21 -8
  9. package/dist/actors/StatusEffect.js.map +1 -1
  10. package/dist/assets/binary.d.ts +52 -0
  11. package/dist/assets/binary.d.ts.map +1 -0
  12. package/dist/assets/binary.js +57 -0
  13. package/dist/assets/binary.js.map +1 -0
  14. package/dist/assets/index.d.ts +10 -5
  15. package/dist/assets/index.d.ts.map +1 -1
  16. package/dist/assets/index.js +9 -5
  17. package/dist/assets/index.js.map +1 -1
  18. package/dist/board/Army.d.ts +75 -0
  19. package/dist/board/Army.d.ts.map +1 -1
  20. package/dist/board/Army.js +75 -0
  21. package/dist/board/Army.js.map +1 -1
  22. package/dist/board/Classics.d.ts +297 -1
  23. package/dist/board/Classics.d.ts.map +1 -1
  24. package/dist/board/Classics.js +297 -1
  25. package/dist/board/Classics.js.map +1 -1
  26. package/dist/board/Engine.d.ts +23 -0
  27. package/dist/board/Engine.d.ts.map +1 -1
  28. package/dist/board/Engine.js +23 -0
  29. package/dist/board/Engine.js.map +1 -1
  30. package/dist/board/FogOfWar.d.ts +20 -0
  31. package/dist/board/FogOfWar.d.ts.map +1 -1
  32. package/dist/board/FogOfWar.js +20 -0
  33. package/dist/board/FogOfWar.js.map +1 -1
  34. package/dist/board/Tactics.d.ts +158 -1
  35. package/dist/board/Tactics.d.ts.map +1 -1
  36. package/dist/board/Tactics.js +125 -1
  37. package/dist/board/Tactics.js.map +1 -1
  38. package/dist/board/chess.d.ts +87 -3
  39. package/dist/board/chess.d.ts.map +1 -1
  40. package/dist/board/chess.js +96 -4
  41. package/dist/board/chess.js.map +1 -1
  42. package/dist/core/HttpTransport.d.ts +1 -1
  43. package/dist/core/HttpTransport.js +1 -1
  44. package/dist/core/News.d.ts +6 -13
  45. package/dist/core/News.d.ts.map +1 -1
  46. package/dist/core/News.js +10 -23
  47. package/dist/core/News.js.map +1 -1
  48. package/dist/core/RunHistory.d.ts +1 -2
  49. package/dist/core/RunHistory.d.ts.map +1 -1
  50. package/dist/core/RunHistory.js +5 -6
  51. package/dist/core/RunHistory.js.map +1 -1
  52. package/dist/core/Stats.d.ts +1 -2
  53. package/dist/core/Stats.d.ts.map +1 -1
  54. package/dist/core/Stats.js +5 -6
  55. package/dist/core/Stats.js.map +1 -1
  56. package/dist/core/StoredValue.d.ts +21 -0
  57. package/dist/core/StoredValue.d.ts.map +1 -0
  58. package/dist/core/StoredValue.js +28 -0
  59. package/dist/core/StoredValue.js.map +1 -0
  60. package/dist/i18n/Content.d.ts +151 -0
  61. package/dist/i18n/Content.d.ts.map +1 -0
  62. package/dist/i18n/Content.js +219 -0
  63. package/dist/i18n/Content.js.map +1 -0
  64. package/dist/i18n/index.d.ts +35 -3
  65. package/dist/i18n/index.d.ts.map +1 -1
  66. package/dist/i18n/index.js +88 -6
  67. package/dist/i18n/index.js.map +1 -1
  68. package/dist/mw_games.global.js +90 -90
  69. package/dist/roguelike/Level.d.ts +10 -0
  70. package/dist/roguelike/Level.d.ts.map +1 -1
  71. package/dist/roguelike/Level.js +57 -17
  72. package/dist/roguelike/Level.js.map +1 -1
  73. package/dist/roguelike/Pathfinder.js +19 -19
  74. package/dist/roguelike/Pathfinder.js.map +1 -1
  75. package/dist/roguelike/Placement.d.ts +62 -0
  76. package/dist/roguelike/Placement.d.ts.map +1 -0
  77. package/dist/roguelike/Placement.js +79 -0
  78. package/dist/roguelike/Placement.js.map +1 -0
  79. package/dist/roguelike/index.d.ts +2 -0
  80. package/dist/roguelike/index.d.ts.map +1 -1
  81. package/dist/roguelike/index.js +1 -0
  82. package/dist/roguelike/index.js.map +1 -1
  83. package/dist/rpg/FreeMover.d.ts +1 -1
  84. package/dist/rpg/FreeMover.d.ts.map +1 -1
  85. package/dist/rpg/FreeMover.js +3 -6
  86. package/dist/rpg/FreeMover.js.map +1 -1
  87. package/dist/rpg/GridMover.d.ts +1 -1
  88. package/dist/rpg/GridMover.d.ts.map +1 -1
  89. package/dist/rpg/GridMover.js +3 -6
  90. package/dist/rpg/GridMover.js.map +1 -1
  91. package/dist/rpg/MovableSprite.d.ts +6 -0
  92. package/dist/rpg/MovableSprite.d.ts.map +1 -1
  93. package/dist/rpg/MovableSprite.js +9 -1
  94. package/dist/rpg/MovableSprite.js.map +1 -1
  95. package/dist/three-d/Models.d.ts +38 -1
  96. package/dist/three-d/Models.d.ts.map +1 -1
  97. package/dist/three-d/Models.js +66 -3
  98. package/dist/three-d/Models.js.map +1 -1
  99. package/dist/two-d/render/ActorAnimator.d.ts +32 -0
  100. package/dist/two-d/render/ActorAnimator.d.ts.map +1 -1
  101. package/dist/two-d/render/ActorAnimator.js +21 -0
  102. package/dist/two-d/render/ActorAnimator.js.map +1 -1
  103. package/dist/two-d/render/AnimatedSprite.d.ts +24 -4
  104. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
  105. package/dist/two-d/render/AnimatedSprite.js +24 -4
  106. package/dist/two-d/render/AnimatedSprite.js.map +1 -1
  107. package/dist/two-d/render/Autotile.d.ts +33 -1
  108. package/dist/two-d/render/Autotile.d.ts.map +1 -1
  109. package/dist/two-d/render/Autotile.js +33 -1
  110. package/dist/two-d/render/Autotile.js.map +1 -1
  111. package/dist/two-d/render/Camera.d.ts +53 -1
  112. package/dist/two-d/render/Camera.d.ts.map +1 -1
  113. package/dist/two-d/render/Camera.js +36 -1
  114. package/dist/two-d/render/Camera.js.map +1 -1
  115. package/dist/two-d/render/Capabilities.d.ts +33 -0
  116. package/dist/two-d/render/Capabilities.d.ts.map +1 -1
  117. package/dist/two-d/render/Capabilities.js +33 -0
  118. package/dist/two-d/render/Capabilities.js.map +1 -1
  119. package/dist/two-d/render/ColorBlindness.d.ts +23 -0
  120. package/dist/two-d/render/ColorBlindness.d.ts.map +1 -1
  121. package/dist/two-d/render/ColorBlindness.js +23 -4
  122. package/dist/two-d/render/ColorBlindness.js.map +1 -1
  123. package/dist/two-d/render/ColorTransformBatcher.d.ts +67 -1
  124. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -1
  125. package/dist/two-d/render/ColorTransformBatcher.js +57 -1
  126. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -1
  127. package/dist/two-d/render/LayeredSprite.d.ts +19 -0
  128. package/dist/two-d/render/LayeredSprite.d.ts.map +1 -1
  129. package/dist/two-d/render/LayeredSprite.js +19 -0
  130. package/dist/two-d/render/LayeredSprite.js.map +1 -1
  131. package/dist/two-d/render/Minimap.d.ts +25 -1
  132. package/dist/two-d/render/Minimap.d.ts.map +1 -1
  133. package/dist/two-d/render/Minimap.js +25 -1
  134. package/dist/two-d/render/Minimap.js.map +1 -1
  135. package/dist/two-d/render/Particles.d.ts +26 -2
  136. package/dist/two-d/render/Particles.d.ts.map +1 -1
  137. package/dist/two-d/render/Particles.js +23 -0
  138. package/dist/two-d/render/Particles.js.map +1 -1
  139. package/dist/two-d/render/Projectile.d.ts +14 -0
  140. package/dist/two-d/render/Projectile.d.ts.map +1 -1
  141. package/dist/two-d/render/Projectile.js +14 -0
  142. package/dist/two-d/render/Projectile.js.map +1 -1
  143. package/dist/two-d/render/ScreenEffects.d.ts +15 -0
  144. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -1
  145. package/dist/two-d/render/ScreenEffects.js +15 -0
  146. package/dist/two-d/render/ScreenEffects.js.map +1 -1
  147. package/dist/two-d/render/Shape2D.d.ts +58 -1
  148. package/dist/two-d/render/Shape2D.d.ts.map +1 -1
  149. package/dist/two-d/render/Shape2D.js +58 -1
  150. package/dist/two-d/render/Shape2D.js.map +1 -1
  151. package/dist/two-d/render/StatusVisuals.d.ts +22 -0
  152. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -1
  153. package/dist/two-d/render/StatusVisuals.js +22 -0
  154. package/dist/two-d/render/StatusVisuals.js.map +1 -1
  155. package/dist/two-d/render/TileMap.d.ts +65 -3
  156. package/dist/two-d/render/TileMap.d.ts.map +1 -1
  157. package/dist/two-d/render/TileMap.js +65 -3
  158. package/dist/two-d/render/TileMap.js.map +1 -1
  159. package/dist/two-d/render/TiledMap.d.ts +9 -3
  160. package/dist/two-d/render/TiledMap.d.ts.map +1 -1
  161. package/dist/two-d/render/TiledMap.js +9 -3
  162. package/dist/two-d/render/TiledMap.js.map +1 -1
  163. package/dist/two-d/render/TintedSprite.d.ts +9 -2
  164. package/dist/two-d/render/TintedSprite.d.ts.map +1 -1
  165. package/dist/two-d/render/TintedSprite.js +9 -2
  166. package/dist/two-d/render/TintedSprite.js.map +1 -1
  167. package/dist/two-d/render/Types2D.d.ts +14 -2
  168. package/dist/two-d/render/Types2D.d.ts.map +1 -1
  169. package/dist/two-d/render/Types2D.js +14 -2
  170. package/dist/two-d/render/Types2D.js.map +1 -1
  171. package/dist/two-d/render/Viewport.d.ts +22 -0
  172. package/dist/two-d/render/Viewport.d.ts.map +1 -1
  173. package/dist/two-d/render/Viewport.js +22 -0
  174. package/dist/two-d/render/Viewport.js.map +1 -1
  175. package/dist/two-d/ui/Bar.d.ts +16 -3
  176. package/dist/two-d/ui/Bar.d.ts.map +1 -1
  177. package/dist/two-d/ui/Bar.js +16 -1
  178. package/dist/two-d/ui/Bar.js.map +1 -1
  179. package/dist/two-d/ui/BitmapLabel.d.ts +26 -10
  180. package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -1
  181. package/dist/two-d/ui/BitmapLabel.js +26 -3
  182. package/dist/two-d/ui/BitmapLabel.js.map +1 -1
  183. package/dist/two-d/ui/Button.d.ts +15 -0
  184. package/dist/two-d/ui/Button.d.ts.map +1 -1
  185. package/dist/two-d/ui/Button.js +15 -0
  186. package/dist/two-d/ui/Button.js.map +1 -1
  187. package/dist/two-d/ui/FloatingText.d.ts +15 -0
  188. package/dist/two-d/ui/FloatingText.d.ts.map +1 -1
  189. package/dist/two-d/ui/FloatingText.js +15 -0
  190. package/dist/two-d/ui/FloatingText.js.map +1 -1
  191. package/dist/two-d/ui/HelpScreen.d.ts +16 -0
  192. package/dist/two-d/ui/HelpScreen.d.ts.map +1 -1
  193. package/dist/two-d/ui/HelpScreen.js +23 -3
  194. package/dist/two-d/ui/HelpScreen.js.map +1 -1
  195. package/dist/two-d/ui/IconGrid.d.ts +27 -3
  196. package/dist/two-d/ui/IconGrid.d.ts.map +1 -1
  197. package/dist/two-d/ui/IconGrid.js +71 -55
  198. package/dist/two-d/ui/IconGrid.js.map +1 -1
  199. package/dist/two-d/ui/Label.d.ts +12 -8
  200. package/dist/two-d/ui/Label.d.ts.map +1 -1
  201. package/dist/two-d/ui/Label.js +14 -3
  202. package/dist/two-d/ui/Label.js.map +1 -1
  203. package/dist/two-d/ui/ListView.d.ts +22 -4
  204. package/dist/two-d/ui/ListView.d.ts.map +1 -1
  205. package/dist/two-d/ui/ListView.js +44 -43
  206. package/dist/two-d/ui/ListView.js.map +1 -1
  207. package/dist/two-d/ui/LoadingScreen.d.ts +24 -1
  208. package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -1
  209. package/dist/two-d/ui/LoadingScreen.js +24 -1
  210. package/dist/two-d/ui/LoadingScreen.js.map +1 -1
  211. package/dist/two-d/ui/MessageBox.d.ts +21 -2
  212. package/dist/two-d/ui/MessageBox.d.ts.map +1 -1
  213. package/dist/two-d/ui/MessageBox.js +19 -0
  214. package/dist/two-d/ui/MessageBox.js.map +1 -1
  215. package/dist/two-d/ui/NinePatch.d.ts +12 -0
  216. package/dist/two-d/ui/NinePatch.d.ts.map +1 -1
  217. package/dist/two-d/ui/NinePatch.js +12 -0
  218. package/dist/two-d/ui/NinePatch.js.map +1 -1
  219. package/dist/two-d/ui/RebindScreen.d.ts +15 -0
  220. package/dist/two-d/ui/RebindScreen.d.ts.map +1 -1
  221. package/dist/two-d/ui/RebindScreen.js +15 -0
  222. package/dist/two-d/ui/RebindScreen.js.map +1 -1
  223. package/dist/two-d/ui/SelectionModel.d.ts +50 -0
  224. package/dist/two-d/ui/SelectionModel.d.ts.map +1 -0
  225. package/dist/two-d/ui/SelectionModel.js +73 -0
  226. package/dist/two-d/ui/SelectionModel.js.map +1 -0
  227. package/dist/two-d/ui/StatsScreen.d.ts +15 -0
  228. package/dist/two-d/ui/StatsScreen.d.ts.map +1 -1
  229. package/dist/two-d/ui/StatsScreen.js +15 -0
  230. package/dist/two-d/ui/StatsScreen.js.map +1 -1
  231. package/dist/two-d/ui/Toast.d.ts +12 -0
  232. package/dist/two-d/ui/Toast.d.ts.map +1 -1
  233. package/dist/two-d/ui/Toast.js +12 -0
  234. package/dist/two-d/ui/Toast.js.map +1 -1
  235. package/dist/two-d/ui/Tooltip.d.ts +14 -0
  236. package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
  237. package/dist/two-d/ui/Tooltip.js +14 -0
  238. package/dist/two-d/ui/Tooltip.js.map +1 -1
  239. package/dist/two-d/ui/VerticalLabel.d.ts +18 -0
  240. package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -1
  241. package/dist/two-d/ui/VerticalLabel.js +18 -0
  242. package/dist/two-d/ui/VerticalLabel.js.map +1 -1
  243. package/dist/two-d/ui/Window.d.ts +12 -0
  244. package/dist/two-d/ui/Window.d.ts.map +1 -1
  245. package/dist/two-d/ui/Window.js +12 -0
  246. package/dist/two-d/ui/Window.js.map +1 -1
  247. package/dist/two-d/ui/theme.d.ts +45 -1
  248. package/dist/two-d/ui/theme.d.ts.map +1 -1
  249. package/dist/two-d/ui/theme.js +45 -1
  250. package/dist/two-d/ui/theme.js.map +1 -1
  251. package/dist/two-d/ui/themedText.d.ts +20 -0
  252. package/dist/two-d/ui/themedText.d.ts.map +1 -0
  253. package/dist/two-d/ui/themedText.js +9 -0
  254. package/dist/two-d/ui/themedText.js.map +1 -0
  255. package/dist/version.d.ts +1 -1
  256. package/dist/version.js +1 -1
  257. package/package.json +11 -2
  258. package/tools/compile-resources.mjs +1 -1
  259. package/tools/compress-dist.d.mts +16 -0
  260. package/tools/compress-dist.mjs +116 -0
@@ -1,4 +1,5 @@
1
- import { Container, type Texture } from 'pixi.js';
1
+ import { Container } from 'pixi.js';
2
+ import type { Texture2D } from '../render/Types2D.ts';
2
3
  export interface BarOptions {
3
4
  width: number;
4
5
  height: number;
@@ -8,9 +9,9 @@ export interface BarOptions {
8
9
  value?: number;
9
10
  max?: number;
10
11
  /** the fill's own art, stretched to the filled width; a plain colour rect (the default) when omitted */
11
- fillTexture?: Texture;
12
+ fillTexture?: Texture2D;
12
13
  /** the track's own art; a plain colour rect (the theme's panel fill) when omitted */
13
- backgroundTexture?: Texture;
14
+ backgroundTexture?: Texture2D;
14
15
  /**
15
16
  * Rounds the filled width up to the next whole pixel instead of a fractional one, so a
16
17
  * sliver of value (1 hp of 300, say) never rounds down to nothing. Off by default, since
@@ -25,6 +26,18 @@ export interface BarOptions {
25
26
  * Closer to a small, focused primitive than a general-purpose progress-bar widget: it draws
26
27
  * a background track and a foreground fill sized to `value / max`, and nothing else. Colour
27
28
  * follows the theme the way `Label` does, unless a game gives one of its own.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * import { Bar } from '@datamoc/mw_games/two-d/ui';
33
+ *
34
+ * const hp = new Bar({ width: 120, height: 8, color: 0xcc3333, value: 30, max: 30 });
35
+ *
36
+ * hp.setValue(18, 30); // took damage
37
+ * console.log(hp.value); // 0.6
38
+ *
39
+ * hp.resize(160, 8); // the window around it grew
40
+ * ```
28
41
  */
29
42
  export declare class Bar extends Container {
30
43
  private track;
@@ -1 +1 @@
1
- {"version":3,"file":"Bar.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAG5D,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,gHAAgH;IAChH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,wGAAwG;IACxG,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,qBAAa,GAAI,SAAQ,SAAS;IACjC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,IAAI,CAAkB;IAE9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,OAAO,EAAE,UAAU,EAiB9B;IAED,+BAA+B;IAC/B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,IAAI,CAGrC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI1C;IAED,OAAO,CAAC,IAAI;IAwBH,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
1
+ {"version":3,"file":"Bar.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,gHAAgH;IAChH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,wGAAwG;IACxG,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAE9B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,GAAI,SAAQ,SAAS;IACjC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,IAAI,CAAkB;IAE9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,OAAO,EAAE,UAAU,EAiB9B;IAED,+BAA+B;IAC/B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,IAAI,CAGrC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI1C;IAED,OAAO,CAAC,IAAI;IA2BH,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
@@ -6,6 +6,18 @@ import { theme, themeChanged } from './theme.js';
6
6
  * Closer to a small, focused primitive than a general-purpose progress-bar widget: it draws
7
7
  * a background track and a foreground fill sized to `value / max`, and nothing else. Colour
8
8
  * follows the theme the way `Label` does, unless a game gives one of its own.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { Bar } from '@datamoc/mw_games/two-d/ui';
13
+ *
14
+ * const hp = new Bar({ width: 120, height: 8, color: 0xcc3333, value: 30, max: 30 });
15
+ *
16
+ * hp.setValue(18, 30); // took damage
17
+ * console.log(hp.value); // 0.6
18
+ *
19
+ * hp.resize(160, 8); // the window around it grew
20
+ * ```
9
21
  */
10
22
  export class Bar extends Container {
11
23
  constructor(options) {
@@ -49,7 +61,10 @@ export class Bar extends Container {
49
61
  if (this.fraction > 0) {
50
62
  const rawWidth = this.width_ * this.fraction;
51
63
  const width = this.roundUpToPixel ? Math.ceil(rawWidth) : rawWidth;
52
- this.fill.rect(0, 0, width, this.height_);
64
+ //rtl fills from the reading-start edge, which is the right one, rather than always
65
+ //growing from x=0 the way a ltr bar (health, mana, a loading bar) reads naturally
66
+ const x = t.direction === 'rtl' ? this.width_ - width : 0;
67
+ this.fill.rect(x, 0, width, this.height_);
53
68
  //an explicit colour tints art the same way it recolours a flat fill; an
54
69
  //untinted texture is left to its own colours when none was given
55
70
  this.fill.fill(this.fillTexture
@@ -1 +1 @@
1
- {"version":3,"file":"Bar.js","sourceRoot":"","sources":["../../../src/two-d/ui/Bar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bar.js","sourceRoot":"","sources":["../../../src/two-d/ui/Bar.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,9 @@
1
1
  import { BitmapText } from 'pixi.js';
2
2
  import type { TextStyleOptions } from 'pixi.js';
3
3
  import { type Theme } from './theme.ts';
4
- export interface BitmapLabelOptions {
5
- text?: string;
6
- color?: number;
7
- size?: number;
8
- /** wraps at this width in pixels; omit for a single unwrapped line */
9
- wrapWidth?: number;
10
- align?: 'left' | 'center' | 'right';
11
- bold?: boolean;
12
- }
4
+ import { type ThemedTextOptions } from './themedText.ts';
5
+ /** today exactly the shared themed-text fields; a distinct name so bitmap-specific options have somewhere to land later */
6
+ export type BitmapLabelOptions = ThemedTextOptions;
13
7
  /**
14
8
  * A piece of text baked into a glyph-atlas texture instead of rasterised fresh on every
15
9
  * change, the way `Label` (a thin wrapper over Pixi's `Text`) does. `Label`'s own doc
@@ -22,6 +16,15 @@ export interface BitmapLabelOptions {
22
16
  * family/size/colour/weight combination is used (see `BitmapText`'s "Dynamic Bitmap Fonts"
23
17
  * behaviour) - nothing here downloads or ships a font file, keeping this the same
24
18
  * generated-not-borrowed shape as every other asset in this project.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { BitmapLabel } from '@datamoc/mw_games/two-d/ui';
23
+ *
24
+ * const fps = new BitmapLabel({ text: '60 fps', size: 12 });
25
+ *
26
+ * fps.setText('59 fps'); // updated every frame, cheaply, unlike Label
27
+ * ```
25
28
  */
26
29
  export declare class BitmapLabel extends BitmapText {
27
30
  private readonly opts;
@@ -37,6 +40,19 @@ export declare class BitmapLabel extends BitmapText {
37
40
  private restyle;
38
41
  destroy(options?: Parameters<BitmapText['destroy']>[0]): void;
39
42
  }
40
- /** the pure style-mapping `BitmapLabel` builds its underlying `BitmapText` style from, exported for testing without constructing a `BitmapText` (which needs a real DOM `document`, unlike `Text`) */
43
+ /**
44
+ * the pure style-mapping `BitmapLabel` builds its underlying `BitmapText` style from, exported
45
+ * for testing without constructing a `BitmapText` (which needs a real DOM `document`, unlike
46
+ * `Text`)
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * import { bitmapLabelStyle } from '@datamoc/mw_games/two-d/ui';
51
+ * import { defaultTheme } from '@datamoc/mw_games/two-d/ui';
52
+ *
53
+ * const style = bitmapLabelStyle({ text: 'Score', bold: true }, defaultTheme);
54
+ * console.log(style.fontWeight); // 'bold'
55
+ * ```
56
+ */
41
57
  export declare function bitmapLabelStyle(opts: BitmapLabelOptions, t: Theme): TextStyleOptions;
42
58
  //# sourceMappingURL=BitmapLabel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BitmapLabel.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/BitmapLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,SAAQ,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,YAAY,OAAO,GAAE,kBAAkB,GAAG,MAAW,EAWpD;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAIN,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGrE;CACD;AAED,sMAAsM;AACtM,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAWrF"}
1
+ {"version":3,"file":"BitmapLabel.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/BitmapLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5F,2HAA2H;AAC3H,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAY,SAAQ,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,YAAY,OAAO,GAAE,kBAAkB,GAAG,MAAW,EAWpD;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAIN,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGrE;CACD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAWrF"}
@@ -1,5 +1,6 @@
1
1
  import { BitmapText } from 'pixi.js';
2
2
  import { theme, themeChanged } from './theme.js';
3
+ import { normalizeTextOptions, themedAlign } from './themedText.js';
3
4
  /**
4
5
  * A piece of text baked into a glyph-atlas texture instead of rasterised fresh on every
5
6
  * change, the way `Label` (a thin wrapper over Pixi's `Text`) does. `Label`'s own doc
@@ -12,10 +13,19 @@ import { theme, themeChanged } from './theme.js';
12
13
  * family/size/colour/weight combination is used (see `BitmapText`'s "Dynamic Bitmap Fonts"
13
14
  * behaviour) - nothing here downloads or ships a font file, keeping this the same
14
15
  * generated-not-borrowed shape as every other asset in this project.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { BitmapLabel } from '@datamoc/mw_games/two-d/ui';
20
+ *
21
+ * const fps = new BitmapLabel({ text: '60 fps', size: 12 });
22
+ *
23
+ * fps.setText('59 fps'); // updated every frame, cheaply, unlike Label
24
+ * ```
15
25
  */
16
26
  export class BitmapLabel extends BitmapText {
17
27
  constructor(options = {}) {
18
- const opts = typeof options === 'string' ? { text: options } : options;
28
+ const opts = normalizeTextOptions(options);
19
29
  const t = theme();
20
30
  super({
21
31
  text: opts.text ?? '',
@@ -43,14 +53,27 @@ export class BitmapLabel extends BitmapText {
43
53
  super.destroy(options);
44
54
  }
45
55
  }
46
- /** the pure style-mapping `BitmapLabel` builds its underlying `BitmapText` style from, exported for testing without constructing a `BitmapText` (which needs a real DOM `document`, unlike `Text`) */
56
+ /**
57
+ * the pure style-mapping `BitmapLabel` builds its underlying `BitmapText` style from, exported
58
+ * for testing without constructing a `BitmapText` (which needs a real DOM `document`, unlike
59
+ * `Text`)
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * import { bitmapLabelStyle } from '@datamoc/mw_games/two-d/ui';
64
+ * import { defaultTheme } from '@datamoc/mw_games/two-d/ui';
65
+ *
66
+ * const style = bitmapLabelStyle({ text: 'Score', bold: true }, defaultTheme);
67
+ * console.log(style.fontWeight); // 'bold'
68
+ * ```
69
+ */
47
70
  export function bitmapLabelStyle(opts, t) {
48
71
  return {
49
72
  fontFamily: t.font.family,
50
73
  fontSize: opts.size ?? t.font.size,
51
74
  fontWeight: opts.bold ? 'bold' : 'normal',
52
75
  fill: opts.color ?? t.color.text,
53
- align: opts.align ?? (t.direction === 'rtl' ? 'right' : 'left'),
76
+ align: themedAlign(opts, t),
54
77
  wordWrap: opts.wrapWidth !== undefined,
55
78
  wordWrapWidth: opts.wrapWidth ?? 0,
56
79
  breakWords: true,
@@ -1 +1 @@
1
- {"version":3,"file":"BitmapLabel.js","sourceRoot":"","sources":["../../../src/two-d/ui/BitmapLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAY7D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU;IAI1C,YAAY,OAAO,GAAgC,EAAE;QACpD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACvE,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;QAElB,KAAK,CAAC;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;SAChC,CAAC,CAAC;QATa,kBAAa,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAW9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAa;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,CAAQ;QACvB,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEQ,OAAO,CAAC,OAA8C;QAC9D,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;CACD;AAED,sMAAsM;AACtM,MAAM,UAAU,gBAAgB,CAAC,IAAwB,EAAE,CAAQ;IAClE,OAAO;QACN,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;QACzB,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;QAClC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QACzC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI;QAChC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/D,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS;QACtC,aAAa,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;QAClC,UAAU,EAAE,IAAI;KAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"BitmapLabel.js","sourceRoot":"","sources":["../../../src/two-d/ui/BitmapLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAA0B,MAAM,iBAAiB,CAAC;AAK5F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU;IAI1C,YAAY,OAAO,GAAgC,EAAE;QACpD,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;QAElB,KAAK,CAAC;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;SAChC,CAAC,CAAC;QATa,kBAAa,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAW9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,uEAAuE;IACvE,OAAO,CAAC,KAAa;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,CAAQ;QACvB,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEQ,OAAO,CAAC,OAA8C;QAC9D,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;CACD;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAwB,EAAE,CAAQ;IAClE,OAAO;QACN,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;QACzB,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;QAClC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QACzC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI;QAChC,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3B,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS;QACtC,aAAa,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;QAClC,UAAU,EAAE,IAAI;KAChB,CAAC;AACH,CAAC"}
@@ -38,6 +38,21 @@ export interface ButtonOptions {
38
38
  *
39
39
  * `icon` alone (no `text`) is the icon-only button a title screen commonly reaches for -
40
40
  * rankings, badges, settings - where a caption would only repeat what the icon already says.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * import { Button } from '@datamoc/mw_games/two-d/ui';
45
+ *
46
+ * const start = new Button({
47
+ * width: 160,
48
+ * height: 32,
49
+ * text: 'Start',
50
+ * onClick: () => console.log('start pressed'),
51
+ * });
52
+ *
53
+ * start.setDisabled(true); // greys it out and stops pointer events
54
+ * console.log(start.disabled); // true
55
+ * ```
41
56
  */
42
57
  export declare class Button extends Container {
43
58
  readonly onClick: Signal<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf;uDACmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,wFAAwF;IACxF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0LAA0L;IAC1L,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8HAA8H;IAC9H,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAGD;;;;;;;;;GASG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACpC,QAAQ,CAAC,OAAO,eAAsB;IACtC,QAAQ,CAAC,OAAO,eAAsB;IACtC,QAAQ,CAAC,SAAS,eAAsB;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,IAAI,CAAmB;IAE/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,OAAO,EAAE,aAAa,EA8CjC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B;;gFAE4E;IAC5E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI1C;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAWtC;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAGnC;IAED,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,IAAI;IA+BH,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf;uDACmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,wFAAwF;IACxF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uEAAuE;IACvE,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0LAA0L;IAC1L,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8HAA8H;IAC9H,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAGD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACpC,QAAQ,CAAC,OAAO,eAAsB;IACtC,QAAQ,CAAC,OAAO,eAAsB;IACtC,QAAQ,CAAC,SAAS,eAAsB;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,IAAI,CAAmB;IAE/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,OAAO,EAAE,aAAa,EA8CjC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B;;gFAE4E;IAC5E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI1C;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAWtC;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAGnC;IAED,OAAO,CAAC,QAAQ;IAQhB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,IAAI;IA+BH,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGpE;CACD"}
@@ -12,6 +12,21 @@ import { theme, themeChanged } from './theme.js';
12
12
  *
13
13
  * `icon` alone (no `text`) is the icon-only button a title screen commonly reaches for -
14
14
  * rankings, badges, settings - where a caption would only repeat what the icon already says.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { Button } from '@datamoc/mw_games/two-d/ui';
19
+ *
20
+ * const start = new Button({
21
+ * width: 160,
22
+ * height: 32,
23
+ * text: 'Start',
24
+ * onClick: () => console.log('start pressed'),
25
+ * });
26
+ *
27
+ * start.setDisabled(true); // greys it out and stops pointer events
28
+ * console.log(start.disabled); // true
29
+ * ```
15
30
  */
16
31
  export class Button extends Container {
17
32
  constructor(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/two-d/ui/Button.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,21 @@ export interface FloatingTextOptions {
13
13
  * `Label`'s job of a static, positioned string. This is animation over a label, timed rather
14
14
  * than laid out - a game positions one instance per pop-up at the world point it should
15
15
  * appear over, then drives it with `update(dt)` the same way `core.Spawner` is `dt`-driven.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { FloatingText } from '@datamoc/mw_games/two-d/ui';
20
+ * import type { Container2D } from '@datamoc/mw_games/two-d/render';
21
+ *
22
+ * declare const worldLayer: Container2D;
23
+ *
24
+ * const popup = new FloatingText({ text: '-12', color: 0xff4444 });
25
+ * popup.position.set(64, 96);
26
+ * worldLayer.addChild(popup);
27
+ *
28
+ * popup.update(0.5); // advance the rise/fade by half a second
29
+ * if (popup.finished) console.log('already removed and destroyed itself');
30
+ * ```
16
31
  */
17
32
  export declare class FloatingText extends Container {
18
33
  private readonly duration;
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingText.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAS;IAErB,YAAY,OAAO,EAAE,mBAAmB,EASvC;IAED,+FAA+F;IAC/F,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,gGAAgG;IAChG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAavB;CACD"}
1
+ {"version":3,"file":"FloatingText.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAa,SAAQ,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAS;IAErB,YAAY,OAAO,EAAE,mBAAmB,EASvC;IAED,+FAA+F;IAC/F,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,gGAAgG;IAChG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAavB;CACD"}
@@ -5,6 +5,21 @@ import { Label } from './Label.js';
5
5
  * `Label`'s job of a static, positioned string. This is animation over a label, timed rather
6
6
  * than laid out - a game positions one instance per pop-up at the world point it should
7
7
  * appear over, then drives it with `update(dt)` the same way `core.Spawner` is `dt`-driven.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { FloatingText } from '@datamoc/mw_games/two-d/ui';
12
+ * import type { Container2D } from '@datamoc/mw_games/two-d/render';
13
+ *
14
+ * declare const worldLayer: Container2D;
15
+ *
16
+ * const popup = new FloatingText({ text: '-12', color: 0xff4444 });
17
+ * popup.position.set(64, 96);
18
+ * worldLayer.addChild(popup);
19
+ *
20
+ * popup.update(0.5); // advance the rise/fade by half a second
21
+ * if (popup.finished) console.log('already removed and destroyed itself');
22
+ * ```
8
23
  */
9
24
  export class FloatingText extends Container {
10
25
  constructor(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingText.js","sourceRoot":"","sources":["../../../src/two-d/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAcnC;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IAM1C,YAAY,OAA4B;QACvC,KAAK,EAAE,CAAC;QAJD,YAAO,GAAG,CAAC,CAAC;QACZ,SAAI,GAAG,KAAK,CAAC;QAKpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1F,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,+FAA+F;IAC/F,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,gGAAgG;IAChG,MAAM,CAAC,EAAU;QAChB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"FloatingText.js","sourceRoot":"","sources":["../../../src/two-d/ui/FloatingText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAcnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IAM1C,YAAY,OAA4B;QACvC,KAAK,EAAE,CAAC;QAJD,YAAO,GAAG,CAAC,CAAC;QACZ,SAAI,GAAG,KAAK,CAAC;QAKpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1F,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,+FAA+F;IAC/F,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,gGAAgG;IAChG,MAAM,CAAC,EAAU;QAChB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QAEtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;CACD"}
@@ -16,6 +16,22 @@ export interface HelpScreenOptions {
16
16
  * highlighted, over the same `ListView`/`Label` a game already builds every other menu
17
17
  * from - a recipe, not a new primitive, the way `RebindScreen` composes `ListView` rather
18
18
  * than inventing its own row widget.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { HelpScreen } from '@datamoc/mw_games/two-d/ui';
23
+ *
24
+ * const help = new HelpScreen({
25
+ * width: 320,
26
+ * height: 200,
27
+ * topics: [
28
+ * { title: 'Movement', body: 'Arrow keys or WASD to move.' },
29
+ * { title: 'Combat', body: 'Walk into an enemy to attack it.' },
30
+ * ],
31
+ * });
32
+ *
33
+ * help.handleAction('down'); // highlights "Combat" and shows its body
34
+ * ```
19
35
  */
20
36
  export declare class HelpScreen extends Container {
21
37
  private list;
@@ -1 +1 @@
1
- {"version":3,"file":"HelpScreen.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAE7B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,SAAS;IACxC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAuB;IAErC,YAAY,OAAO,EAAE,iBAAiB,EAqBrC;IAED,OAAO,CAAC,QAAQ;IAIhB,6CAA6C;IAC7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpC;CACD"}
1
+ {"version":3,"file":"HelpScreen.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAE7B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,UAAW,SAAQ,SAAS;IACxC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAuB;IAErC,YAAY,OAAO,EAAE,iBAAiB,EAyBrC;IAED,OAAO,CAAC,QAAQ;IAIhB,6CAA6C;IAC7C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpC;CACD"}
@@ -7,13 +7,32 @@ import { theme } from './theme.js';
7
7
  * highlighted, over the same `ListView`/`Label` a game already builds every other menu
8
8
  * from - a recipe, not a new primitive, the way `RebindScreen` composes `ListView` rather
9
9
  * than inventing its own row widget.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { HelpScreen } from '@datamoc/mw_games/two-d/ui';
14
+ *
15
+ * const help = new HelpScreen({
16
+ * width: 320,
17
+ * height: 200,
18
+ * topics: [
19
+ * { title: 'Movement', body: 'Arrow keys or WASD to move.' },
20
+ * { title: 'Combat', body: 'Walk into an enemy to attack it.' },
21
+ * ],
22
+ * });
23
+ *
24
+ * help.handleAction('down'); // highlights "Combat" and shows its body
25
+ * ```
10
26
  */
11
27
  export class HelpScreen extends Container {
12
28
  constructor(options) {
13
29
  super();
14
30
  this.topics = options.topics;
15
31
  const listWidth = options.listWidth ?? Math.floor(options.width / 3);
16
- const bodyLeft = listWidth + theme().spacing;
32
+ const bodyWidth = options.width - listWidth - theme().spacing;
33
+ //rtl mirrors which pane sits on which side - the topic list stays reading-start,
34
+ //which is the right edge in rtl, with the body filling the reading-end side
35
+ const rtl = theme().direction === 'rtl';
17
36
  this.list = new ListView({
18
37
  width: listWidth,
19
38
  height: options.height,
@@ -21,9 +40,10 @@ export class HelpScreen extends Container {
21
40
  onHighlight: (_item, index) => this.showBody(index),
22
41
  onSelect: (_item, index) => this.showBody(index),
23
42
  });
43
+ this.list.x = rtl ? options.width - listWidth : 0;
24
44
  this.addChild(this.list);
25
- this.body = new Label({ wrapWidth: options.width - bodyLeft });
26
- this.body.x = bodyLeft;
45
+ this.body = new Label({ wrapWidth: bodyWidth });
46
+ this.body.x = rtl ? 0 : listWidth + theme().spacing;
27
47
  this.addChild(this.body);
28
48
  if (this.topics.length > 0)
29
49
  this.showBody(this.list.selectedIndex);
@@ -1 +1 @@
1
- {"version":3,"file":"HelpScreen.js","sourceRoot":"","sources":["../../../src/two-d/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgBnC;;;;;GAKG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAKxC,YAAY,OAA0B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC;QAE7C,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC;YACxB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,6CAA6C;IAC7C,YAAY,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACD"}
1
+ {"version":3,"file":"HelpScreen.js","sourceRoot":"","sources":["../../../src/two-d/ui/HelpScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgBnC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAKxC,YAAY,OAA0B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC;QAC9D,iFAAiF;QACjF,4EAA4E;QAC5E,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC;QAExC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC;YACxB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,6CAA6C;IAC7C,YAAY,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACD"}
@@ -40,9 +40,32 @@ export interface IconGridOptions {
40
40
  * none of the drag-threshold and global-pointer-tracking fragility an actually-followed ghost
41
41
  * sprite would - and unlike a live drag, every step of it is a plain method call a test can
42
42
  * drive without simulating pointer events at all.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * import { IconGrid } from '@datamoc/mw_games/two-d/ui';
47
+ * import { Shape2D } from '@datamoc/mw_games/two-d/render';
48
+ *
49
+ * const potionIcon = new Shape2D().rect(0, 0, 16, 16).fill(0x66cc66);
50
+ * const swordIcon = new Shape2D().rect(0, 0, 16, 16).fill(0xcccccc);
51
+ *
52
+ * const bag = new IconGrid({
53
+ * width: 160,
54
+ * height: 80,
55
+ * columns: 4,
56
+ * items: [
57
+ * { icon: potionIcon, quantity: 3 },
58
+ * { icon: swordIcon },
59
+ * ],
60
+ * onSelect: (item, index) => console.log('used', index, item.value),
61
+ * });
62
+ *
63
+ * bag.handleAction('right'); // moves the highlight to the sword
64
+ * bag.handleAction('confirm'); // fires onSelect for the highlighted cell
65
+ * ```
43
66
  */
44
67
  export declare class IconGrid extends Container {
45
- private items;
68
+ private readonly selection;
46
69
  private cells;
47
70
  private cellsLayer;
48
71
  private highlight;
@@ -53,7 +76,6 @@ export declare class IconGrid extends Container {
53
76
  private columns;
54
77
  private cellSize;
55
78
  private longPressDuration;
56
- private index;
57
79
  private scrollRow;
58
80
  /** the cell a first tap picked up, awaiting a second tap to swap with */
59
81
  private pickedUp;
@@ -67,9 +89,11 @@ export declare class IconGrid extends Container {
67
89
  * Recolours quantity badges in place rather than through `setItems`: an item's `icon` is
68
90
  * a `Container` the caller owns, and `setItems`'s teardown destroys a cell's children on
69
91
  * the way out (see `swapCells`'s own doc comment) - routing a restyle through it would
70
- * destroy the very icons still referenced by `this.items`.
92
+ * destroy the very icons still referenced by the selection's items.
71
93
  */
72
94
  private readonly themeListener;
95
+ /** a column's x, mirrored under `theme().direction === 'rtl'` so column 0 sits at the reading-start edge */
96
+ private columnX;
73
97
  constructor(options: IconGridOptions);
74
98
  destroy(options?: Parameters<Container['destroy']>[0]): void;
75
99
  private drawMask;
@@ -1 +1 @@
1
- {"version":3,"file":"IconGrid.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/IconGrid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IconGrid.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/IconGrid.ts"],"names":[],"mappings":"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"}