brick-engine-js 1.0.9 → 1.0.11

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 (280) hide show
  1. package/dist/app.js +1 -4952
  2. package/dist/brick-engine.js +1 -4970
  3. package/dist/css/brick-engine.bundle.css +1 -1
  4. package/dist/docs/GAME_DEVELOPER_GUIDE.html +1 -1
  5. package/dist/docs/brick-engine-guide.html +1 -1
  6. package/dist/docs/getting-started.html +1 -1
  7. package/dist/docs/jsdoc_standard.html +1 -1
  8. package/dist/docs/publishing.html +1 -1
  9. package/dist/docs/reference/interfaces/modules/Session.html +1 -1
  10. package/dist/docs/reference/modules/GameMenu.html +1 -1
  11. package/dist/docs/reference/modules/GameSession.html +1 -1
  12. package/dist/docs/reference/modules/InitialStateSnapshot.html +1 -1
  13. package/dist/docs/reference/modules/SessionModal.html +1 -1
  14. package/dist/docs/testing_best_practices.html +1 -1
  15. package/dist/index.html +1 -16
  16. package/dist/{index.d.ts → types/index.d.ts} +1 -0
  17. package/dist/vendor/p5.min.js +1 -1
  18. package/package.json +2 -4
  19. package/dist/app.js.map +0 -1
  20. package/dist/brick-engine.js.map +0 -1
  21. package/dist/css/app.bundle.css +0 -824
  22. package/dist/css/app.bundle.css.map +0 -1
  23. package/dist/css/brick-engine.bundle.css.map +0 -1
  24. package/docs/GAME_DEVELOPER_GUIDE.adoc +0 -167
  25. package/docs/brick-engine-guide.adoc +0 -87
  26. package/docs/diagrams/lifecycle.mmd +0 -19
  27. package/docs/documentation_style_guide.adoc +0 -210
  28. package/docs/getting-started.adoc +0 -147
  29. package/docs/images/lifecycle.svg +0 -1
  30. package/docs/jsdoc_standard.adoc +0 -109
  31. package/docs/publishing.adoc +0 -58
  32. package/docs/reference/enums/Color.adoc +0 -35
  33. package/docs/reference/enums/ControlEventType.adoc +0 -28
  34. package/docs/reference/enums/ControlKey.adoc +0 -34
  35. package/docs/reference/enums/FontAlignment.adoc +0 -43
  36. package/docs/reference/enums/FontSize.adoc +0 -31
  37. package/docs/reference/enums/Sound.adoc +0 -42
  38. package/docs/reference/enums/StateProperty.adoc +0 -33
  39. package/docs/reference/helpers/CellHelper.adoc +0 -37
  40. package/docs/reference/helpers/ControlInputHandlerHelper.adoc +0 -57
  41. package/docs/reference/helpers/CoordinateHelper.adoc +0 -118
  42. package/docs/reference/helpers/RelativeValuesHelper.adoc +0 -53
  43. package/docs/reference/interfaces/Debuggable.adoc +0 -29
  44. package/docs/reference/interfaces/GameModules.adoc +0 -35
  45. package/docs/reference/interfaces/Initializable.adoc +0 -24
  46. package/docs/reference/interfaces/RendererInitializable.adoc +0 -33
  47. package/docs/reference/interfaces/StateSyncable.adoc +0 -41
  48. package/docs/reference/interfaces/modules/Control.adoc +0 -98
  49. package/docs/reference/interfaces/modules/Grid.adoc +0 -411
  50. package/docs/reference/interfaces/modules/Renderer.adoc +0 -34
  51. package/docs/reference/interfaces/modules/RendererComposite.adoc +0 -57
  52. package/docs/reference/interfaces/modules/Score.adoc +0 -107
  53. package/docs/reference/interfaces/modules/Session.adoc +0 -66
  54. package/docs/reference/interfaces/modules/State.adoc +0 -290
  55. package/docs/reference/interfaces/modules/Text.adoc +0 -110
  56. package/docs/reference/interfaces/modules/Time.adoc +0 -119
  57. package/docs/reference/modules/Debugger.adoc +0 -71
  58. package/docs/reference/modules/DisplayRenderer.adoc +0 -55
  59. package/docs/reference/modules/Game.adoc +0 -256
  60. package/docs/reference/modules/GameControl.adoc +0 -139
  61. package/docs/reference/modules/GameGrid.adoc +0 -794
  62. package/docs/reference/modules/GameHudGrid.adoc +0 -38
  63. package/docs/reference/modules/GameMenu.adoc +0 -39
  64. package/docs/reference/modules/GameRenderer.adoc +0 -79
  65. package/docs/reference/modules/GameScore.adoc +0 -138
  66. package/docs/reference/modules/GameSession.adoc +0 -43
  67. package/docs/reference/modules/GameSound.adoc +0 -111
  68. package/docs/reference/modules/GameState.adoc +0 -318
  69. package/docs/reference/modules/GameText.adoc +0 -139
  70. package/docs/reference/modules/GameTime.adoc +0 -141
  71. package/docs/reference/modules/HudRenderer.adoc +0 -56
  72. package/docs/reference/modules/InitialStateSnapshot.adoc +0 -47
  73. package/docs/reference/modules/SessionModal.adoc +0 -34
  74. package/docs/reference/types/Axis.adoc +0 -28
  75. package/docs/reference/types/Cell.adoc +0 -29
  76. package/docs/reference/types/ControlCallback.adoc +0 -23
  77. package/docs/reference/types/Coordinate.adoc +0 -29
  78. package/docs/reference/types/GameEntry.adoc +0 -29
  79. package/docs/reference/types/GameEvent.adoc +0 -29
  80. package/docs/reference/types/Piece.adoc +0 -32
  81. package/docs/reference/types/RendererMetrics.adoc +0 -29
  82. package/docs/reference/types/Vector.adoc +0 -28
  83. package/docs/testing_best_practices.adoc +0 -190
  84. package/public/CNAME +0 -1
  85. package/public/docs/GAME_DEVELOPER_GUIDE.html +0 -727
  86. package/public/docs/brick-engine-guide.html +0 -610
  87. package/public/docs/diagrams/lifecycle.mmd +0 -19
  88. package/public/docs/documentation_style_guide.html +0 -994
  89. package/public/docs/getting-started.html +0 -648
  90. package/public/docs/images/lifecycle.svg +0 -1
  91. package/public/docs/index.html +0 -593
  92. package/public/docs/jsdoc_standard.html +0 -656
  93. package/public/docs/publishing.html +0 -573
  94. package/public/docs/reference/enums/Color.html +0 -533
  95. package/public/docs/reference/enums/ControlEventType.html +0 -505
  96. package/public/docs/reference/enums/ControlKey.html +0 -529
  97. package/public/docs/reference/enums/FontAlignment.html +0 -545
  98. package/public/docs/reference/enums/FontSize.html +0 -517
  99. package/public/docs/reference/enums/Sound.html +0 -558
  100. package/public/docs/reference/enums/StateProperty.html +0 -525
  101. package/public/docs/reference/helpers/CellHelper.html +0 -520
  102. package/public/docs/reference/helpers/ControlInputHandlerHelper.html +0 -569
  103. package/public/docs/reference/helpers/CoordinateHelper.html +0 -703
  104. package/public/docs/reference/helpers/RelativeValuesHelper.html +0 -560
  105. package/public/docs/reference/interfaces/Debuggable.html +0 -501
  106. package/public/docs/reference/interfaces/GameModules.html +0 -544
  107. package/public/docs/reference/interfaces/Initializable.html +0 -495
  108. package/public/docs/reference/interfaces/RendererInitializable.html +0 -517
  109. package/public/docs/reference/interfaces/StateSyncable.html +0 -542
  110. package/public/docs/reference/interfaces/modules/Control.html +0 -648
  111. package/public/docs/reference/interfaces/modules/Grid.html +0 -1256
  112. package/public/docs/reference/interfaces/modules/Renderer.html +0 -522
  113. package/public/docs/reference/interfaces/modules/RendererComposite.html +0 -577
  114. package/public/docs/reference/interfaces/modules/Score.html +0 -669
  115. package/public/docs/reference/interfaces/modules/Session.html +0 -585
  116. package/public/docs/reference/interfaces/modules/State.html +0 -897
  117. package/public/docs/reference/interfaces/modules/Text.html +0 -668
  118. package/public/docs/reference/interfaces/modules/Time.html +0 -684
  119. package/public/docs/reference/modules/Debugger.html +0 -579
  120. package/public/docs/reference/modules/DisplayRenderer.html +0 -557
  121. package/public/docs/reference/modules/Game.html +0 -909
  122. package/public/docs/reference/modules/GameControl.html +0 -716
  123. package/public/docs/reference/modules/GameGrid.html +0 -1910
  124. package/public/docs/reference/modules/GameHudGrid.html +0 -508
  125. package/public/docs/reference/modules/GameMenu.html +0 -538
  126. package/public/docs/reference/modules/GameRenderer.html +0 -589
  127. package/public/docs/reference/modules/GameScore.html +0 -664
  128. package/public/docs/reference/modules/GameSession.html +0 -533
  129. package/public/docs/reference/modules/GameSound.html +0 -636
  130. package/public/docs/reference/modules/GameState.html +0 -922
  131. package/public/docs/reference/modules/GameText.html +0 -701
  132. package/public/docs/reference/modules/GameTime.html +0 -696
  133. package/public/docs/reference/modules/HudRenderer.html +0 -568
  134. package/public/docs/reference/modules/InitialStateSnapshot.html +0 -557
  135. package/public/docs/reference/modules/SessionModal.html +0 -520
  136. package/public/docs/reference/types/Axis.html +0 -505
  137. package/public/docs/reference/types/Cell.html +0 -514
  138. package/public/docs/reference/types/ControlCallback.html +0 -488
  139. package/public/docs/reference/types/Coordinate.html +0 -510
  140. package/public/docs/reference/types/GameEntry.html +0 -514
  141. package/public/docs/reference/types/GameEvent.html +0 -514
  142. package/public/docs/reference/types/Piece.html +0 -506
  143. package/public/docs/reference/types/RendererMetrics.html +0 -514
  144. package/public/docs/reference/types/Vector.html +0 -509
  145. package/public/docs/testing_best_practices.html +0 -770
  146. package/public/favicon.ico +0 -0
  147. package/public/fonts/digital-7.monoitalic.ttf +0 -0
  148. package/public/images/cell.svg +0 -32
  149. package/public/images/close.png +0 -0
  150. package/public/images/games.png +0 -0
  151. package/public/images/github.png +0 -0
  152. package/public/images/letter-a.png +0 -0
  153. package/public/images/letter-d.png +0 -0
  154. package/public/images/letter-j.png +0 -0
  155. package/public/images/letter-s.png +0 -0
  156. package/public/images/letter-w.png +0 -0
  157. package/public/images/meta-image.png +0 -0
  158. package/public/images/number-1.png +0 -0
  159. package/public/images/number-2.png +0 -0
  160. package/public/images/number-3.png +0 -0
  161. package/public/images/number-4.png +0 -0
  162. package/public/images/number-5.png +0 -0
  163. package/public/images/number-6.png +0 -0
  164. package/public/images/splash.gif +0 -0
  165. package/public/index.html +0 -16
  166. package/public/sounds/sound_00.wav +0 -0
  167. package/public/sounds/sound_01.wav +0 -0
  168. package/public/sounds/sound_02.wav +0 -0
  169. package/public/sounds/sound_03.wav +0 -0
  170. package/public/sounds/sound_04.wav +0 -0
  171. package/public/sounds/sound_05.wav +0 -0
  172. package/public/sounds/sound_06.wav +0 -0
  173. package/public/sounds/sound_07.wav +0 -0
  174. package/public/sounds/sound_08.wav +0 -0
  175. package/public/sounds/sound_09.wav +0 -0
  176. package/public/sounds/sound_10.wav +0 -0
  177. package/public/sounds/sound_11.wav +0 -0
  178. package/public/sounds/sound_12.wav +0 -0
  179. package/public/sounds/sound_13.wav +0 -0
  180. package/public/sounds/sound_14.wav +0 -0
  181. package/public/sounds/sound_15.wav +0 -0
  182. package/public/style/body.css +0 -86
  183. package/public/style/buttons.css +0 -233
  184. package/public/style/debugger.css +0 -117
  185. package/public/style/sessionModal.css +0 -155
  186. package/public/style/sourceCodeAndCommands.css +0 -74
  187. package/public/style/splash.css +0 -13
  188. package/public/style/theme.css +0 -137
  189. /package/dist/{bootstrap.d.ts → types/bootstrap.d.ts} +0 -0
  190. /package/dist/{bootstrap.test.d.ts → types/bootstrap.test.d.ts} +0 -0
  191. /package/dist/{config → types/config}/configs.d.ts +0 -0
  192. /package/dist/{config → types/config}/configs.test.d.ts +0 -0
  193. /package/dist/{core → types/core}/Game.d.ts +0 -0
  194. /package/dist/{core → types/core}/Game.test.d.ts +0 -0
  195. /package/dist/{core → types/core}/InitialStateSnapshot.d.ts +0 -0
  196. /package/dist/{core → types/core}/InitialStateSnapshot.test.d.ts +0 -0
  197. /package/dist/{core → types/core}/helpers/CellHelper.d.ts +0 -0
  198. /package/dist/{core → types/core}/helpers/CellHelper.test.d.ts +0 -0
  199. /package/dist/{core → types/core}/helpers/ControlInputHandlerHelper.d.ts +0 -0
  200. /package/dist/{core → types/core}/helpers/ControlInputHandlerHelper.test.d.ts +0 -0
  201. /package/dist/{core → types/core}/helpers/CoordinateHelper.d.ts +0 -0
  202. /package/dist/{core → types/core}/helpers/CoordinateHelper.test.d.ts +0 -0
  203. /package/dist/{core → types/core}/helpers/InterfaceIdentifierHelper.d.ts +0 -0
  204. /package/dist/{core → types/core}/helpers/InterfaceIdentifierHelper.test.d.ts +0 -0
  205. /package/dist/{core → types/core}/helpers/RelativeValuesHelper.d.ts +0 -0
  206. /package/dist/{core → types/core}/helpers/RelativeValuesHelper.test.d.ts +0 -0
  207. /package/dist/{core → types/core}/module/control/GameControl.d.ts +0 -0
  208. /package/dist/{core → types/core}/module/control/GameControl.test.d.ts +0 -0
  209. /package/dist/{core → types/core}/module/control/GameControlKeyBinding.d.ts +0 -0
  210. /package/dist/{core → types/core}/module/control/GameControlKeyBinding.test.d.ts +0 -0
  211. /package/dist/{core → types/core}/module/grid/GameGrid.d.ts +0 -0
  212. /package/dist/{core → types/core}/module/grid/GameGrid.test.d.ts +0 -0
  213. /package/dist/{core → types/core}/module/grid/GameHudGrid.d.ts +0 -0
  214. /package/dist/{core → types/core}/module/grid/GameHudGrid.test.d.ts +0 -0
  215. /package/dist/{core → types/core}/module/grid/engines/GridAnalysisEngine.d.ts +0 -0
  216. /package/dist/{core → types/core}/module/grid/engines/GridAnalysisEngine.test.d.ts +0 -0
  217. /package/dist/{core → types/core}/module/grid/engines/GridLineEngine.d.ts +0 -0
  218. /package/dist/{core → types/core}/module/grid/engines/GridLineEngine.test.d.ts +0 -0
  219. /package/dist/{core → types/core}/module/grid/engines/GridMovementEngine.d.ts +0 -0
  220. /package/dist/{core → types/core}/module/grid/engines/GridMovementEngine.test.d.ts +0 -0
  221. /package/dist/{core → types/core}/module/grid/engines/GridRegionEngine.d.ts +0 -0
  222. /package/dist/{core → types/core}/module/grid/engines/GridRegionEngine.test.d.ts +0 -0
  223. /package/dist/{core → types/core}/module/grid/engines/GridTransformEngine.d.ts +0 -0
  224. /package/dist/{core → types/core}/module/grid/engines/GridTransformEngine.test.d.ts +0 -0
  225. /package/dist/{core → types/core}/module/renderer/DisplayRenderer.d.ts +0 -0
  226. /package/dist/{core → types/core}/module/renderer/DisplayRenderer.test.d.ts +0 -0
  227. /package/dist/{core → types/core}/module/renderer/GameRenderer.d.ts +0 -0
  228. /package/dist/{core → types/core}/module/renderer/GameRenderer.test.d.ts +0 -0
  229. /package/dist/{core → types/core}/module/renderer/HudRenderer.d.ts +0 -0
  230. /package/dist/{core → types/core}/module/renderer/HudRenderer.test.d.ts +0 -0
  231. /package/dist/{core → types/core}/module/score/GameScore.d.ts +0 -0
  232. /package/dist/{core → types/core}/module/score/GameScore.test.d.ts +0 -0
  233. /package/dist/{core → types/core}/module/session/GameSession.d.ts +0 -0
  234. /package/dist/{core → types/core}/module/session/GameSession.test.d.ts +0 -0
  235. /package/dist/{core → types/core}/module/sound/GameSound.d.ts +0 -0
  236. /package/dist/{core → types/core}/module/sound/GameSound.test.d.ts +0 -0
  237. /package/dist/{core → types/core}/module/state/GameState.d.ts +0 -0
  238. /package/dist/{core → types/core}/module/state/GameState.test.d.ts +0 -0
  239. /package/dist/{core → types/core}/module/text/GameText.d.ts +0 -0
  240. /package/dist/{core → types/core}/module/text/GameText.test.d.ts +0 -0
  241. /package/dist/{core → types/core}/module/time/GameTime.d.ts +0 -0
  242. /package/dist/{core → types/core}/module/time/GameTime.test.d.ts +0 -0
  243. /package/dist/{core → types/core}/types/Interfaces.d.ts +0 -0
  244. /package/dist/{core → types/core}/types/Types.d.ts +0 -0
  245. /package/dist/{core → types/core}/types/enums.d.ts +0 -0
  246. /package/dist/{core → types/core}/types/modules.d.ts +0 -0
  247. /package/dist/{main.d.ts → types/main.d.ts} +0 -0
  248. /package/dist/{menu → types/menu}/GameMenu.d.ts +0 -0
  249. /package/dist/{menu → types/menu}/GameMenu.test.d.ts +0 -0
  250. /package/dist/{menu → types/menu}/GameMenuSingleton.d.ts +0 -0
  251. /package/dist/{menu → types/menu}/GameMenuSingleton.test.d.ts +0 -0
  252. /package/dist/{menu → types/menu}/GameRepository.d.ts +0 -0
  253. /package/dist/{menu → types/menu}/GameRepository.test.d.ts +0 -0
  254. /package/dist/{menu → types/menu}/manager/GameManager.d.ts +0 -0
  255. /package/dist/{menu → types/menu}/manager/GameManager.test.d.ts +0 -0
  256. /package/dist/types/{interfaces.d.ts → types/interfaces.d.ts} +0 -0
  257. /package/dist/{view → types/view}/Debugger.d.ts +0 -0
  258. /package/dist/{view → types/view}/Debugger.test.d.ts +0 -0
  259. /package/dist/{view → types/view}/GameView.d.ts +0 -0
  260. /package/dist/{view → types/view}/GameView.test.d.ts +0 -0
  261. /package/dist/{view → types/view}/SessionModal.d.ts +0 -0
  262. /package/dist/{view → types/view}/SessionModal.test.d.ts +0 -0
  263. /package/dist/{view → types/view}/components/layout/ButtonLayout.d.ts +0 -0
  264. /package/dist/{view → types/view}/components/layout/ButtonLayout.test.d.ts +0 -0
  265. /package/dist/{view → types/view}/components/layout/ContainerLayout.d.ts +0 -0
  266. /package/dist/{view → types/view}/components/layout/ContainerLayout.test.d.ts +0 -0
  267. /package/dist/{view → types/view}/components/layout/FrameLayout.d.ts +0 -0
  268. /package/dist/{view → types/view}/components/layout/FrameLayout.test.d.ts +0 -0
  269. /package/dist/{view → types/view}/components/ui/BigButton.d.ts +0 -0
  270. /package/dist/{view → types/view}/components/ui/BigButton.test.d.ts +0 -0
  271. /package/dist/{view → types/view}/components/ui/Button.d.ts +0 -0
  272. /package/dist/{view → types/view}/components/ui/Button.test.d.ts +0 -0
  273. /package/dist/{view → types/view}/components/ui/Canvas.d.ts +0 -0
  274. /package/dist/{view → types/view}/components/ui/Canvas.test.d.ts +0 -0
  275. /package/dist/{view → types/view}/components/ui/SmallButton.d.ts +0 -0
  276. /package/dist/{view → types/view}/components/ui/SmallButton.test.d.ts +0 -0
  277. /package/dist/{view → types/view}/theme/applyColors.d.ts +0 -0
  278. /package/dist/{view → types/view}/theme/applyColors.test.d.ts +0 -0
  279. /package/dist/{view → types/view}/theme/dimensions.d.ts +0 -0
  280. /package/dist/{view → types/view}/theme/dimensions.test.d.ts +0 -0
@@ -1,34 +0,0 @@
1
- = SessionModal Module Reference
2
- :description: Handles the UI layer interaction for restoring saved active play sessions.
3
- :keywords: modal, ui, dialog, DOM, restoration, session
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
-
10
- The `SessionModal` interacts directly with the DOM outside of the Canvas domain, creating standard HTML elements (divs and buttons) overlapping the P5.js context to prompt users whether they wish to resume their previous game session.
11
-
12
- == Lifecycle
13
-
14
- === `setup(): void`
15
-
16
- Creates the necessary DOM layer elements. Called typically during engine bootstrap by the `xref:../../view/GameView.adoc[GameView]`.
17
- Constructs the background container wrapper, title frames, dialogue text, and confirm/cancel action buttons. Sets their initial state utilizing the CSS `.hidden` class to keep them out of view until queried.
18
-
19
- === `show(onConfirm: () => void, onCancel: () => void): void`
20
-
21
- Reveals the modal.
22
-
23
- **Parameters**
24
-
25
- [cols="1,1,3"]
26
- |===
27
- |Name |Type |Description
28
- |`onConfirm` |`Function` |The closure executed if the user selects "Confirm".
29
- |`onCancel` |`Function` |The closure executed if the user selects "Cancel".
30
- |===
31
-
32
- **Behavior**
33
-
34
- Hooks the callback functions directly to the `mousePressed` listener of the individual DOM buttons. Upon clicking any of the buttons, it executes the passed callback and immediately invokes `_hide()`, returning to its hidden CSS boundary.
@@ -1,28 +0,0 @@
1
- = Axis Reference
2
- :description: Represents an axis in a 2D coordinate system.
3
- :keywords: axis, coordinate, 2d, transformation, mirror
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- Represents an axis in a 2D coordinate system.
16
-
17
- == Possible Values
18
-
19
- [cols="1,3"]
20
- |===
21
- |Value |Description
22
- |`'x'` |The horizontal axis.
23
- |`'y'` |The vertical axis.
24
- |===
25
-
26
- == General Usage
27
-
28
- The `Axis` type is primarily used for transformation operations that apply selectively to one dimension, such as mirroring a piece across a specific axis.
@@ -1,29 +0,0 @@
1
- = Cell Reference
2
- :description: Represents the state of an individual unit within the 2D game grid.
3
- :keywords: cell, grid, unit, state
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- Represents the state of an individual unit within the 2D game grid.
16
-
17
- == Attributes
18
-
19
- [cols="1,1,3"]
20
- |===
21
- |Name |Type |Description
22
- |`value` |`number` |Lifecycle value. `0` is empty, `>0` is occupied.
23
- |`color` |xref:../enums/Color.adoc[Color] |The theme color to render the cell with.
24
- |`coordinate` |xref:Coordinate.adoc[Coordinate] |The `{x, y}` position of this cell.
25
- |===
26
-
27
- == General Usage
28
-
29
- Cells are managed by the `xref:../modules/GameGrid.adoc[GameGrid]` module. They are rarely created manually; instead, they are accessed and modified via methods like `grid.getCell(coord)` and `grid.setCellValue(coord, val)`.
@@ -1,23 +0,0 @@
1
- = ControlCallback Reference
2
- :description: Type definition for functions that handle engine input.
3
- :keywords: callback, control, input, subscriber
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- Type definition for functions that handle engine input.
16
-
17
- == Structure
18
-
19
- `type ControlCallback = (event: xref:GameEvent.adoc[GameEvent]) => void;`
20
-
21
- == General Usage
22
-
23
- This type ensures that functions passed to `modules.control.subscribe(key, type, callback)` (see `xref:../modules/GameControl.adoc[GameControl]`) correctly accept the `xref:GameEvent.adoc[GameEvent]` context.
@@ -1,29 +0,0 @@
1
- = Coordinate Reference
2
- :description: A foundational 2D point interface used for positioning on grid or display.
3
- :keywords: coordinate, point, position, 2d
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- A foundational 2D point interface used for positioning.
16
-
17
- == Attributes
18
-
19
- [cols="1,1,3"]
20
- |===
21
- |Name |Type |Description
22
- |`x` |`number` |Horizontal axis value.
23
- |`y` |`number` |Vertical axis value.
24
- |===
25
-
26
- == General Usage
27
-
28
- Coordinates describe grid positions (columns/rows) as integers, or normalized screen positions as floats (0.0 to 1.0).
29
- Use `xref:../helpers/CoordinateHelper.adoc[CoordinateHelper]` for translations between these systems.
@@ -1,29 +0,0 @@
1
- = GameEntry Reference
2
- :description: Defines the structure for games registered in the engine's repository.
3
- :keywords: game, entry, repository, structure
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- Defines the structure for games registered in the engine's repository.
16
-
17
- == Attributes
18
-
19
- [cols="1,1,3"]
20
- |===
21
- |Name |Type |Description
22
- |`id` |`string` |The unique identifier of the game instance.
23
- |`name` |`string` |The human-readable label for the game.
24
- |`url` |`string` |The remote URL of the game's JavaScript bundle.
25
- |===
26
-
27
- == General Usage
28
-
29
- The repository uses `GameEntry` to populate menu lists and manage the lifecycle of different game instances.
@@ -1,29 +0,0 @@
1
- = GameEvent Reference
2
- :description: The context object delivered to input subscribers during events.
3
- :keywords: event, input, subscriber, context
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- The context object delivered to input subscribers.
16
-
17
- == Attributes
18
-
19
- [cols="1,1,3"]
20
- |===
21
- |Name |Type |Description
22
- |`key` |xref:../enums/ControlKey.adoc[ControlKey] |The identifier for the triggered key.
23
- |`type` |xref:../enums/ControlEventType.adoc[ControlEventType] |Whether the key was `PRESSED` or is being `HELD`.
24
- |`modules` |xref:../interfaces/GameModules.adoc[GameModules] |Accessor for all engine services.
25
- |===
26
-
27
- == General Usage
28
-
29
- When a control callback is executed, it receives a `GameEvent`. This allows the game logic to react based on the key type and interact with the `xref:../interfaces/modules/Grid.adoc[Grid]`, `xref:../interfaces/modules/State.adoc[State]`, or `xref:../interfaces/modules/Score.adoc[Score]` modules.
@@ -1,32 +0,0 @@
1
- = Piece Reference
2
- :description: Represents a collection of cells that form a game piece or "stamp".
3
- :keywords: piece, stamp, cells, grid, collection
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- Represents a collection of `xref:Cell.adoc[Cell]` objects that form a cohesive game piece or a pattern to be "stamped" onto the grid.
16
-
17
- == Definition
18
-
19
- [source,typescript]
20
- ----
21
- export type Piece = Cell[];
22
- ----
23
-
24
- == General Usage
25
-
26
- The `Piece` type is the main unit of interaction for complex grid operations. By working with an array of `xref:Cell.adoc[Cell]` instead of raw `xref:Coordinate.adoc[Coordinate]`, the engine can preserve properties like color and value during movement and transformation.
27
-
28
- Common operations involving pieces include:
29
-
30
- * **Stamping**: Permanently applying the piece's cells to the grid.
31
- * **Movement**: Shifting all cells within a piece simultaneously while checking for collisions.
32
- * **Transformation**: Rotating, mirroring, or projecting the piece onto different grid locations.
@@ -1,29 +0,0 @@
1
- = RendererMetrics Reference
2
- :description: Defines the calculated dimensions and offsets for the physical layout.
3
- :keywords: metrics, renderer, layout, dimensions, offsets
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- Defines the calculated dimensions and offsets for the physical layout.
16
-
17
- == Attributes
18
-
19
- [cols="1,1,3"]
20
- |===
21
- |Name |Type |Description
22
- |`display` |`object` |Contains `width`, `height`, and `origin` (xref:Coordinate.adoc[Coordinate]) for the main screen.
23
- |`hud` |`object` |Contains `width`, `height`, and `origin` (xref:Coordinate.adoc[Coordinate]) for the HUD area.
24
- |`cell` |`object` |Contains the `size` (number) in pixels of a single grid cell.
25
- |===
26
-
27
- == General Usage
28
-
29
- This data is calculated by the `xref:../modules/GameRenderer.adoc[GameRenderer]` and consumed by specialized sub-renderers like `xref:../modules/DisplayRenderer.adoc[DisplayRenderer]`, `xref:../modules/HudRenderer.adoc[HudRenderer]`, and `xref:../modules/GameText.adoc[GameText]` to ensure alignment.
@@ -1,28 +0,0 @@
1
- = Vector Reference
2
- :description: Represents a generic 2D vector for directional or magnitude calculations.
3
- :keywords: vector, direction, magnitude, 2d, transformation
4
- :toc: left
5
- :toclevels: 3
6
- :sectnums:
7
- :sectlinks:
8
- :icons: font
9
- :source-highlighter: highlight.js
10
- :reproducible:
11
- :experimental:
12
- :idprefix:
13
- :idseparator: -
14
-
15
- Represents a generic 2D vector for directional or magnitude calculations.
16
-
17
- == Attributes
18
-
19
- [cols="1,1,3"]
20
- |===
21
- |Name |Type |Description
22
- |`x` |`-1 \| 0 \| 1` |Horizontal direction offset.
23
- |`y` |`-1 \| 0 \| 1` |Vertical direction offset.
24
- |===
25
-
26
- == General Usage
27
-
28
- Unlike `xref:Coordinate.adoc[Coordinate]`, which usually implies a position, `Vector` is used for transformations, velocities, and offsets applied to coordinates.
@@ -1,190 +0,0 @@
1
- = Testing Best Practices with Vitest
2
- :toc: left
3
- :icons: font
4
-
5
- This document defines the standards and best practices for unit testing in the Brick Engine project using **Vitest**. It is designed to be easily parsed by both developers and AI assistants.
6
-
7
- == Core Pattern: Triple A (AAA)
8
-
9
- All tests must follow the **Arrange, Act, Assert** pattern. Use explicit comments to demarcate these phases, as this helps AI models understand the test logic context.
10
-
11
- === [ARRANGE]
12
- Set up the test environment, prepare data, and initialize the object under test.
13
- [source,typescript]
14
- ----
15
- // [ARRANGE]
16
- const grid = new GameGrid();
17
- const coordinate = { x: 5, y: 5 };
18
- ----
19
-
20
- === [ACT]
21
- Execute the specific method or behavior being tested. Limit this to a single action if possible.
22
- [source,typescript]
23
- ----
24
- // [ACT]
25
- const result = grid.isValidCoordinate(coordinate);
26
- ----
27
-
28
- === [ASSERT]
29
- Verify the outcome. Use descriptive expectations.
30
- [source,typescript]
31
- ----
32
- // [ASSERT]
33
- expect(result).toBe(true);
34
- ----
35
-
36
- == Naming Conventions
37
-
38
- Test descriptions should follow the pattern: `should [expected result] when [scenario or action]`.
39
-
40
- * *Bad:* `test grid validation`
41
- * *Good:* `should return true when coordinate is within grid boundaries`
42
-
43
- == AI-Assisted Testing Best Practices
44
-
45
- To facilitate AI-driven test generation and debugging:
46
-
47
- 1. **Be Explicit**: Use the `// [ARRANGE]`, `// [ACT]`, and `// [ASSERT]` tags.
48
- 2. **Context Injection**: When asking an AI to write a test, provide the interface of the module and dependencies.
49
- 3. **One Logic per Test**: Avoid "Giant Tests". Test one specific behavior per `it` block.
50
- 4. **Mocking Constants**: Always mock global configurations (like `configs`) to ensure tests are deterministic.
51
-
52
- == Vitest Configuration Standard
53
-
54
- * **Globals**: Use `globals: true` to avoid importing `describe`, `it`, `expect` in every file.
55
- * **Environment**: Use `@vitest-environment jsdom` at the top of files that interact with DOM or p5.js.
56
- * **Coverage**: Target at least 80% coverage for "Engines" and "Helpers".
57
- * **Aliases**: If using bundler aliases (e.g., `@client-game`), define them in `vitest.config.ts` using `resolve.alias`.
58
-
59
- == Advanced Mocking & Stubs
60
-
61
- === Mocking Browser APIs
62
- For tests requiring browser features in JSDOM:
63
-
64
- [source,typescript]
65
- ----
66
- // [ARRANGE]
67
- vi.stubGlobal('localStorage', {
68
- getItem: vi.fn(),
69
- setItem: vi.fn(),
70
- });
71
-
72
- vi.stubGlobal('AudioContext', vi.fn().mockImplementation(function() {
73
- return {
74
- createGain: vi.fn().mockReturnThis(),
75
- destination: {},
76
- };
77
- }));
78
- ----
79
-
80
- === Constructible Mocks
81
- When mocking a class that will be instantiated with `new`, Vitest requires the mock to be a `function` or `class`:
82
-
83
- [source,typescript]
84
- ----
85
- vi.mock('./MyModule', () => ({
86
- default: vi.fn().mockImplementation(function() {
87
- return {
88
- doSomething: vi.fn()
89
- };
90
- })
91
- }));
92
- ----
93
-
94
- === Hoisted Variables
95
- If you need to share variables between your test and the `vi.mock` factory (which is hoisted), use `vi.hoisted`:
96
-
97
- [source,typescript]
98
- ----
99
- const { mockRef } = vi.hoisted(() => ({
100
- mockRef: { id: 1 }
101
- }));
102
-
103
- vi.mock('./module', () => ({
104
- default: () => mockRef
105
- }));
106
- ----
107
-
108
- == Testing Entry Points (main.ts)
109
-
110
- Tests for entry points that execute code on import require isolation:
111
-
112
- 1. Use `vi.resetModules()` in `beforeEach`.
113
- 2. Use dynamic `import()` within the `it` block.
114
- 3. Set environment flags (like `APP_MODE`) *before* the dynamic import.
115
-
116
- [source,typescript]
117
- ----
118
- it('should init in client mode', async () => {
119
- (isClientMode as vi.Mock).mockReturnValue(true);
120
- await import('./main'); // Triggers execution
121
- expect(p5).toHaveBeenCalled();
122
- });
123
- ----
124
-
125
- === Workaround for Dynamic Imports with Webpack/TS (TS1323)
126
-
127
- When the project uses a `tsconfig.json` meant for the browser (e.g., configuring `module: commonjs`), running bundlers like `webpack` over the test files can trigger **TS1323** because the TS compiler doesn't understand the dynamic inputs naturally.
128
-
129
- **To resolve this properly without ANY `@ts-expect-error`:**
130
- 1. Set the `module` resolving option in `tsconfig.json` to `"ESNext"` or `"ES2020"` so TS allows dynamic imports. Webpack can still easily compile it targeting ES5.
131
- 2. Create ambient definition files (e.g., `src/client-game.d.ts`) containing module declarations (`declare module '@client-game';`) to resolve TS2307 dynamically missing paths.
132
-
133
- [source,typescript]
134
- ----
135
- it('should init in client mode', async () => {
136
- // Both dynamic imports work natively without errors!
137
- const { isClientMode } = await import('./config/env');
138
- (isClientMode as unknown as Mock).mockReturnValue(true);
139
-
140
- // Import and execute
141
- await import('./main');
142
-
143
- // ... assertions ...
144
- });
145
- ----
146
-
147
- == ESLint & Type Safety in Tests
148
-
149
- Maintain code quality even in tests:
150
-
151
- * **Avoid `any`**: Use `unknown as vi.Mock` or cast to specific interfaces.
152
- * **Private Members**: Use `// @ts-expect-error` or `(instance as any)._privateProp` only when absolutely necessary to verify internal state, but prefer testing public behavior.
153
- * **Mock Dependencies**: Mock sub-packages (e.g., `view` or `manager`) when testing core orchestrators to isolate logic.
154
-
155
- == Example: Testing a Grid Engine
156
-
157
- [source,typescript]
158
- ----
159
- import { describe, it, expect, beforeEach, vi } from 'vitest';
160
- import GridAnalysisEngine from './GridAnalysisEngine';
161
- import { Grid } from '../../../types/modules';
162
-
163
- describe('GridAnalysisEngine', () => {
164
- let engine: GridAnalysisEngine;
165
- let mockGrid: Grid;
166
-
167
- beforeEach(() => {
168
- // [ARRANGE]
169
- mockGrid = {
170
- width: 10,
171
- height: 20,
172
- isCellActive: vi.fn(),
173
- // ... other properties
174
- } as unknown as Grid;
175
- engine = new GridAnalysisEngine(mockGrid);
176
- });
177
-
178
- it('should identify full rows when all cells in a row are active', () => {
179
- // [ARRANGE]
180
- vi.mocked(mockGrid.isCellActive).mockImplementation(({ y }) => y === 5);
181
-
182
- // [ACT]
183
- const fullRows = engine.getFullRows();
184
-
185
- // [ASSERT]
186
- expect(fullRows).toContain(5);
187
- expect(fullRows.length).toBe(1);
188
- });
189
- });
190
- ----
package/public/CNAME DELETED
@@ -1 +0,0 @@
1
- brickengine.com.br