brick-engine-js 1.0.22 → 1.0.23

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 (98) hide show
  1. package/README.adoc +2 -2
  2. package/dist/docs/index.html +3 -3
  3. package/dist/docs/jsdoc_standard.html +30 -13
  4. package/dist/docs/reference/bootstrap.html +556 -0
  5. package/dist/docs/reference/context/RendererContext.html +19 -9
  6. package/dist/docs/reference/enums/Color.html +11 -5
  7. package/dist/docs/reference/enums/ControlEventType.html +7 -5
  8. package/dist/docs/reference/enums/ControlKey.html +7 -5
  9. package/dist/docs/reference/enums/EventSuffix.html +7 -5
  10. package/dist/docs/reference/enums/FontAlignment.html +9 -7
  11. package/dist/docs/reference/enums/FontSize.html +7 -5
  12. package/dist/docs/reference/enums/Sound.html +7 -5
  13. package/dist/docs/reference/enums/StateProperty.html +7 -5
  14. package/dist/docs/reference/helpers/CellHelper.html +6 -2
  15. package/dist/docs/reference/helpers/ControlInputHandlerHelper.html +9 -5
  16. package/dist/docs/reference/helpers/CoordinateHelper.html +14 -10
  17. package/dist/docs/reference/helpers/RelativeValuesHelper.html +7 -3
  18. package/dist/docs/reference/interfaces/Debuggable.html +9 -7
  19. package/dist/docs/reference/interfaces/GameModules.html +7 -5
  20. package/dist/docs/reference/interfaces/Initializable.html +9 -7
  21. package/dist/docs/reference/interfaces/RendererInitializable.html +9 -7
  22. package/dist/docs/reference/interfaces/StateContext.html +7 -5
  23. package/dist/docs/reference/interfaces/StateSyncable.html +11 -9
  24. package/dist/docs/reference/interfaces/modules/Control.html +19 -17
  25. package/dist/docs/reference/interfaces/modules/Grid.html +77 -55
  26. package/dist/docs/reference/interfaces/modules/Renderer.html +9 -7
  27. package/dist/docs/reference/interfaces/modules/RendererComposite.html +13 -11
  28. package/dist/docs/reference/interfaces/modules/Score.html +21 -19
  29. package/dist/docs/reference/interfaces/modules/Session.html +64 -18
  30. package/dist/docs/reference/interfaces/modules/State.html +59 -57
  31. package/dist/docs/reference/interfaces/modules/Text.html +21 -19
  32. package/dist/docs/reference/interfaces/modules/Time.html +80 -24
  33. package/dist/docs/reference/modules/Debugger.html +16 -14
  34. package/dist/docs/reference/modules/DisplayRenderer.html +10 -8
  35. package/dist/docs/reference/modules/EventEmitter.html +34 -26
  36. package/dist/docs/reference/modules/Game.html +55 -30
  37. package/dist/docs/reference/modules/GameControl.html +49 -44
  38. package/dist/docs/reference/modules/GameEventRegistry.html +17 -34
  39. package/dist/docs/reference/modules/GameGrid.html +174 -116
  40. package/dist/docs/reference/modules/GameHudGrid.html +10 -8
  41. package/dist/docs/reference/modules/GameRenderer.html +14 -12
  42. package/dist/docs/reference/modules/GameScore.html +36 -34
  43. package/dist/docs/reference/modules/GameSession.html +37 -19
  44. package/dist/docs/reference/modules/GameSound.html +20 -18
  45. package/dist/docs/reference/modules/GameState.html +70 -68
  46. package/dist/docs/reference/modules/GameText.html +29 -27
  47. package/dist/docs/reference/modules/GameTime.html +98 -30
  48. package/dist/docs/reference/modules/HudRenderer.html +10 -8
  49. package/dist/docs/reference/modules/InitialStateSnapshot.html +13 -11
  50. package/dist/docs/reference/modules/SessionModal.html +11 -9
  51. package/dist/docs/reference/types/Axis.html +7 -5
  52. package/dist/docs/reference/types/Cell.html +7 -5
  53. package/dist/docs/reference/types/ControlCallback.html +7 -5
  54. package/dist/docs/reference/types/Coordinate.html +7 -5
  55. package/dist/docs/reference/types/GameEvent.html +7 -5
  56. package/dist/docs/reference/types/Piece.html +7 -5
  57. package/dist/docs/reference/types/RendererMetrics.html +7 -5
  58. package/dist/docs/reference/types/Vector.html +7 -5
  59. package/dist/docs/reference/view/GameView.html +29 -21
  60. package/dist/docs/testing_best_practices.html +2 -2
  61. package/dist/game.bundle.js +1 -1
  62. package/dist/types/bootstrap.d.ts +12 -11
  63. package/dist/types/core/Game.d.ts +46 -39
  64. package/dist/types/core/InitialStateSnapshot.d.ts +18 -6
  65. package/dist/types/core/context/RendererContext.d.ts +32 -10
  66. package/dist/types/core/event/EventEmitter.d.ts +64 -21
  67. package/dist/types/core/event/GameEventRegistry.d.ts +17 -3
  68. package/dist/types/core/helpers/CellHelper.d.ts +11 -4
  69. package/dist/types/core/helpers/ControlInputHandlerHelper.d.ts +20 -11
  70. package/dist/types/core/helpers/CoordinateHelper.d.ts +28 -23
  71. package/dist/types/core/helpers/InterfaceIdentifierHelper.d.ts +34 -0
  72. package/dist/types/core/helpers/RelativeValuesHelper.d.ts +10 -8
  73. package/dist/types/core/module/control/GameControl.d.ts +26 -14
  74. package/dist/types/core/module/grid/GameGrid.d.ts +68 -53
  75. package/dist/types/core/module/grid/GameHudGrid.d.ts +9 -7
  76. package/dist/types/core/module/grid/engines/GridAnalysisEngine.d.ts +25 -6
  77. package/dist/types/core/module/grid/engines/GridLineEngine.d.ts +51 -13
  78. package/dist/types/core/module/grid/engines/GridMovementEngine.d.ts +97 -13
  79. package/dist/types/core/module/grid/engines/GridRegionEngine.d.ts +24 -5
  80. package/dist/types/core/module/grid/engines/GridTransformEngine.d.ts +21 -5
  81. package/dist/types/core/module/renderer/DisplayRenderer.d.ts +27 -15
  82. package/dist/types/core/module/renderer/GameRenderer.d.ts +20 -13
  83. package/dist/types/core/module/renderer/HudRenderer.d.ts +27 -19
  84. package/dist/types/core/module/score/GameScore.d.ts +29 -18
  85. package/dist/types/core/module/session/GameSession.d.ts +56 -0
  86. package/dist/types/core/module/sound/GameSound.d.ts +39 -23
  87. package/dist/types/core/module/state/GameState.d.ts +38 -14
  88. package/dist/types/core/module/text/GameText.d.ts +40 -25
  89. package/dist/types/core/module/time/GameTime.d.ts +23 -10
  90. package/dist/types/core/types/Interfaces.d.ts +15 -0
  91. package/dist/types/core/types/Types.d.ts +1 -0
  92. package/dist/types/core/types/enums.d.ts +2 -1
  93. package/dist/types/core/types/modules.d.ts +193 -43
  94. package/dist/types/view/Debugger.d.ts +23 -0
  95. package/dist/types/view/GameView.d.ts +44 -27
  96. package/dist/types/view/SessionModal.d.ts +24 -0
  97. package/package.json +1 -1
  98. package/dist/CNAME +0 -1
@@ -443,13 +443,15 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#values">1. Values</a></li>
447
- <li><a href="#general-usage">2. General Usage</a></li>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#values">2. Values</a></li>
448
+ <li><a href="#general-usage">3. General Usage</a></li>
448
449
  </ul>
449
450
  </div>
450
451
  </div>
451
452
  <div id="content">
452
- <div id="preamble">
453
+ <div class="sect1">
454
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
453
455
  <div class="sectionbody">
454
456
  <div class="paragraph">
455
457
  <p>Defines the available visual theme colors for grid cells and text.</p>
@@ -457,7 +459,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
457
459
  </div>
458
460
  </div>
459
461
  <div class="sect1">
460
- <h2 id="values"><a class="link" href="#values">1. Values</a></h2>
462
+ <h2 id="values"><a class="link" href="#values">2. Values</a></h2>
461
463
  <div class="sectionbody">
462
464
  <table class="tableblock frame-all grid-all stretch">
463
465
  <colgroup>
@@ -505,12 +507,16 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
505
507
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>INACTIVE</code></p></td>
506
508
  <td class="tableblock halign-left valign-top"><p class="tableblock">Faded color for background/ghost elements.</p></td>
507
509
  </tr>
510
+ <tr>
511
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>SHADOW</code></p></td>
512
+ <td class="tableblock halign-left valign-top"><p class="tableblock">Intermediate color between default and inactive for dynamic shadows.</p></td>
513
+ </tr>
508
514
  </tbody>
509
515
  </table>
510
516
  </div>
511
517
  </div>
512
518
  <div class="sect1">
513
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
519
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
514
520
  <div class="sectionbody">
515
521
  <div class="paragraph">
516
522
  <p>Colors are used throughout the engine to theme the <code><a href="../modules/GameGrid.html">GameGrid</a></code> and the <code>HUD</code>. Use these constants when calling methods like <code>grid.setCellColor(coord, Color.RED)</code>.</p>
@@ -443,13 +443,15 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#values">1. Values</a></li>
447
- <li><a href="#general-usage">2. General Usage</a></li>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#values">2. Values</a></li>
448
+ <li><a href="#general-usage">3. General Usage</a></li>
448
449
  </ul>
449
450
  </div>
450
451
  </div>
451
452
  <div id="content">
452
- <div id="preamble">
453
+ <div class="sect1">
454
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
453
455
  <div class="sectionbody">
454
456
  <div class="paragraph">
455
457
  <p>Enumerates the different ways an input can be triggered.</p>
@@ -457,7 +459,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
457
459
  </div>
458
460
  </div>
459
461
  <div class="sect1">
460
- <h2 id="values"><a class="link" href="#values">1. Values</a></h2>
462
+ <h2 id="values"><a class="link" href="#values">2. Values</a></h2>
461
463
  <div class="sectionbody">
462
464
  <table class="tableblock frame-all grid-all stretch">
463
465
  <colgroup>
@@ -482,7 +484,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
482
484
  </div>
483
485
  </div>
484
486
  <div class="sect1">
485
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
487
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
486
488
  <div class="sectionbody">
487
489
  <div class="paragraph">
488
490
  <p>Crucial for distinguishing between actions like "Rotate Once" (<code><a href="../enums/ControlEventType.html">PRESSED</a></code>) and "Move Continuously" (<code><a href="../enums/ControlEventType.html">HELD</a></code>). Used in subscription filters: <code><a href="../modules/GameControl.html">modules.control</a>.subscribe(key, ControlEventType.HELD, callback)</code>.</p>
@@ -443,13 +443,15 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#values">1. Values</a></li>
447
- <li><a href="#general-usage">2. General Usage</a></li>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#values">2. Values</a></li>
448
+ <li><a href="#general-usage">3. General Usage</a></li>
448
449
  </ul>
449
450
  </div>
450
451
  </div>
451
452
  <div id="content">
452
- <div id="preamble">
453
+ <div class="sect1">
454
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
453
455
  <div class="sectionbody">
454
456
  <div class="paragraph">
455
457
  <p>Abstraction layer mapping hardware inputs to logical engine actions.</p>
@@ -457,7 +459,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
457
459
  </div>
458
460
  </div>
459
461
  <div class="sect1">
460
- <h2 id="values"><a class="link" href="#values">1. Values</a></h2>
462
+ <h2 id="values"><a class="link" href="#values">2. Values</a></h2>
461
463
  <div class="sectionbody">
462
464
  <table class="tableblock frame-all grid-all stretch">
463
465
  <colgroup>
@@ -506,7 +508,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
506
508
  </div>
507
509
  </div>
508
510
  <div class="sect1">
509
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
511
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
510
512
  <div class="sectionbody">
511
513
  <div class="paragraph">
512
514
  <p><code>ControlKey</code> is used when subscribing to input events via <code><a href="../modules/GameControl.html">GameControl</a>.subscribe()</code> and when checking the <code>key</code> property of a <code><a href="../types/GameEvent.html">GameEvent</a></code>.</p>
@@ -443,13 +443,15 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#values">1. Values</a></li>
447
- <li><a href="#general-usage">2. General Usage</a></li>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#values">2. Values</a></li>
448
+ <li><a href="#general-usage">3. General Usage</a></li>
448
449
  </ul>
449
450
  </div>
450
451
  </div>
451
452
  <div id="content">
452
- <div id="preamble">
453
+ <div class="sect1">
454
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
453
455
  <div class="sectionbody">
454
456
  <div class="paragraph">
455
457
  <p>The <code>EventSuffix</code> enum defines the available suffixes used to scope events within the engine&#8217;s contextual notification system.</p>
@@ -457,7 +459,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
457
459
  </div>
458
460
  </div>
459
461
  <div class="sect1">
460
- <h2 id="values"><a class="link" href="#values">1. Values</a></h2>
462
+ <h2 id="values"><a class="link" href="#values">2. Values</a></h2>
461
463
  <div class="sectionbody">
462
464
  <table class="tableblock frame-all grid-all stretch">
463
465
  <colgroup>
@@ -490,7 +492,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
490
492
  </div>
491
493
  </div>
492
494
  <div class="sect1">
493
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
495
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
494
496
  <div class="sectionbody">
495
497
  <div class="paragraph">
496
498
  <p>These suffixes are used by the <code><a href="../modules/EventEmitter.html">EventEmitter</a></code> to construct specialized event names (e.g., <code>UP:pressed:playing</code>) and by modules like <code><a href="../modules/GameControl.html">GameControl</a></code> and <code><a href="../modules/GameState.html">GameState</a></code> for state-scoped subscriptions.</p>
@@ -443,14 +443,16 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#fontalign">1. <code>FontAlign</code></a></li>
447
- <li><a href="#fontverticalalign">2. <code>FontVerticalAlign</code></a></li>
448
- <li><a href="#general-usage">3. General Usage</a></li>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#fontalign">2. <code>FontAlign</code></a></li>
448
+ <li><a href="#fontverticalalign">3. <code>FontVerticalAlign</code></a></li>
449
+ <li><a href="#general-usage">4. General Usage</a></li>
449
450
  </ul>
450
451
  </div>
451
452
  </div>
452
453
  <div id="content">
453
- <div id="preamble">
454
+ <div class="sect1">
455
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
454
456
  <div class="sectionbody">
455
457
  <div class="paragraph">
456
458
  <p>Enums defining the text anchor points on the canvas.</p>
@@ -458,7 +460,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
458
460
  </div>
459
461
  </div>
460
462
  <div class="sect1">
461
- <h2 id="fontalign"><a class="link" href="#fontalign">1. <code>FontAlign</code></a></h2>
463
+ <h2 id="fontalign"><a class="link" href="#fontalign">2. <code>FontAlign</code></a></h2>
462
464
  <div class="sectionbody">
463
465
  <div class="paragraph">
464
466
  <p>Horizontal alignment of the text block.</p>
@@ -490,7 +492,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
490
492
  </div>
491
493
  </div>
492
494
  <div class="sect1">
493
- <h2 id="fontverticalalign"><a class="link" href="#fontverticalalign">2. <code>FontVerticalAlign</code></a></h2>
495
+ <h2 id="fontverticalalign"><a class="link" href="#fontverticalalign">3. <code>FontVerticalAlign</code></a></h2>
494
496
  <div class="sectionbody">
495
497
  <div class="paragraph">
496
498
  <p>Vertical alignment of the text block.</p>
@@ -522,7 +524,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
522
524
  </div>
523
525
  </div>
524
526
  <div class="sect1">
525
- <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
527
+ <h2 id="general-usage"><a class="link" href="#general-usage">4. General Usage</a></h2>
526
528
  <div class="sectionbody">
527
529
  <div class="paragraph">
528
530
  <p>Used when calling <code><a href="../modules/GameText.html">GameText</a>.setTextAlign()</code>.</p>
@@ -443,13 +443,15 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#values">1. Values</a></li>
447
- <li><a href="#general-usage">2. General Usage</a></li>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#values">2. Values</a></li>
448
+ <li><a href="#general-usage">3. General Usage</a></li>
448
449
  </ul>
449
450
  </div>
450
451
  </div>
451
452
  <div id="content">
452
- <div id="preamble">
453
+ <div class="sect1">
454
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
453
455
  <div class="sectionbody">
454
456
  <div class="paragraph">
455
457
  <p>Predefined logic scales for the retro pixelated typography.</p>
@@ -457,7 +459,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
457
459
  </div>
458
460
  </div>
459
461
  <div class="sect1">
460
- <h2 id="values"><a class="link" href="#values">1. Values</a></h2>
462
+ <h2 id="values"><a class="link" href="#values">2. Values</a></h2>
461
463
  <div class="sectionbody">
462
464
  <table class="tableblock frame-all grid-all stretch">
463
465
  <colgroup>
@@ -494,7 +496,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
494
496
  </div>
495
497
  </div>
496
498
  <div class="sect1">
497
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
499
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
498
500
  <div class="sectionbody">
499
501
  <div class="paragraph">
500
502
  <p>Set the active font size via <code><a href="../modules/GameText.html">GameText</a>.setTextSize(FontSize.LARGE)</code>. The engine automatically handles the scaling based on the display resolution.</p>
@@ -443,13 +443,15 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#values">1. Values</a></li>
447
- <li><a href="#general-usage">2. General Usage</a></li>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#values">2. Values</a></li>
448
+ <li><a href="#general-usage">3. General Usage</a></li>
448
449
  </ul>
449
450
  </div>
450
451
  </div>
451
452
  <div id="content">
452
- <div id="preamble">
453
+ <div class="sect1">
454
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
453
455
  <div class="sectionbody">
454
456
  <div class="paragraph">
455
457
  <p>Maps sound identifiers to their relative asset paths.</p>
@@ -457,7 +459,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
457
459
  </div>
458
460
  </div>
459
461
  <div class="sect1">
460
- <h2 id="values"><a class="link" href="#values">1. Values</a></h2>
462
+ <h2 id="values"><a class="link" href="#values">2. Values</a></h2>
461
463
  <div class="sectionbody">
462
464
  <table class="tableblock frame-all grid-all stretch">
463
465
  <colgroup>
@@ -534,7 +536,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
534
536
  </div>
535
537
  </div>
536
538
  <div class="sect1">
537
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
539
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
538
540
  <div class="sectionbody">
539
541
  <div class="paragraph">
540
542
  <p>Use these constants to trigger audio effects via the <code><a href="../modules/GameSound.html">GameSound</a></code> module.
@@ -443,13 +443,15 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#values">1. Values</a></li>
447
- <li><a href="#general-usage">2. General Usage</a></li>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#values">2. Values</a></li>
448
+ <li><a href="#general-usage">3. General Usage</a></li>
448
449
  </ul>
449
450
  </div>
450
451
  </div>
451
452
  <div id="content">
452
- <div id="preamble">
453
+ <div class="sect1">
454
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
453
455
  <div class="sectionbody">
454
456
  <div class="paragraph">
455
457
  <p>Enumerates all observable and persistent properties of the game system.</p>
@@ -457,7 +459,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
457
459
  </div>
458
460
  </div>
459
461
  <div class="sect1">
460
- <h2 id="values"><a class="link" href="#values">1. Values</a></h2>
462
+ <h2 id="values"><a class="link" href="#values">2. Values</a></h2>
461
463
  <div class="sectionbody">
462
464
  <table class="tableblock frame-all grid-all stretch">
463
465
  <colgroup>
@@ -502,7 +504,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
502
504
  </div>
503
505
  </div>
504
506
  <div class="sect1">
505
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
507
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
506
508
  <div class="sectionbody">
507
509
  <div class="paragraph">
508
510
  <p>Used identifying which property changed in the <code><a href="../modules/GameState.html">GameState</a>.subscribe()</code> callback.</p>
@@ -7,6 +7,7 @@
7
7
  <meta name="generator" content="Asciidoctor 2.0.20">
8
8
  <meta name="description" content="Static factory methods for creating and initializing Cell objects consistently.">
9
9
  <meta name="keywords" content="cell, factory, grid, helper">
10
+ <meta name="author" content="== Architectural Purpose">
10
11
  <title>CellHelper Reference</title>
11
12
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
12
13
  <style>
@@ -440,6 +441,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
440
441
  <body class="article toc2 toc-left">
441
442
  <div id="header">
442
443
  <h1>CellHelper Reference</h1>
444
+ <div class="details">
445
+ <span id="author" class="author">== Architectural Purpose</span><br>
446
+ </div>
443
447
  <div id="toc" class="toc2">
444
448
  <div id="toctitle">Table of Contents</div>
445
449
  <ul class="sectlevel1">
@@ -455,7 +459,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
455
459
  <div id="preamble">
456
460
  <div class="sectionbody">
457
461
  <div class="paragraph">
458
- <p>The <code>CellHelper</code> provides static factory methods for creating and initializing <code>Cell</code> objects consistently.</p>
462
+ <p>The <code>CellHelper</code> provides a reliable and centralized mechanism to instantiate default grid cells. It ensures that every cell generated across the engine instances starts with identical baseline properties, preventing inconsistent matrix states from forming in abstract spaces.</p>
459
463
  </div>
460
464
  </div>
461
465
  </div>
@@ -485,7 +489,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
485
489
  <tr>
486
490
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>coordinate</code></p></td>
487
491
  <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../types/Coordinate.html">Coordinate</a></p></td>
488
- <td class="tableblock halign-left valign-top"><p class="tableblock">The <code>{x, y}</code> position to assign to the new cell.</p></td>
492
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The initialized precise <code>{x, y}</code> logical grid position to assign to the new cell instance.</p></td>
489
493
  </tr>
490
494
  </tbody>
491
495
  </table>
@@ -7,6 +7,7 @@
7
7
  <meta name="generator" content="Asciidoctor 2.0.20">
8
8
  <meta name="description" content="Utilities for normalizing raw hardware keyboard events into abstract ControlKey actions.">
9
9
  <meta name="keywords" content="input, handler, keyboard, normalization, helper">
10
+ <meta name="author" content="== Architectural Purpose">
10
11
  <title>ControlInputHandlerHelper Reference</title>
11
12
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
12
13
  <style>
@@ -440,6 +441,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
440
441
  <body class="article toc2 toc-left">
441
442
  <div id="header">
442
443
  <h1>ControlInputHandlerHelper Reference</h1>
444
+ <div class="details">
445
+ <span id="author" class="author">== Architectural Purpose</span><br>
446
+ </div>
443
447
  <div id="toc" class="toc2">
444
448
  <div id="toctitle">Table of Contents</div>
445
449
  <ul class="sectlevel1">
@@ -457,7 +461,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
457
461
  <div id="preamble">
458
462
  <div class="sectionbody">
459
463
  <div class="paragraph">
460
- <p>The <code>ControlInputHandlerHelper</code> manages the complexity of input timing, such as identifying the difference between a quick "press" and a sustained "hold".</p>
464
+ <p>The <code>ControlInputHandlerHelper</code> manages the complexity of input timing, normalizing raw hardware keyboard events or UI button clicks into abstract <code><a href="../enums/ControlKey.html">ControlKey</a></code> actions. It handles the nuance between a quick "press" and a sustained "hold", offloading timer logic from the core <code><a href="../modules/GameControl.html">GameControl</a></code> module.</p>
461
465
  </div>
462
466
  </div>
463
467
  </div>
@@ -494,8 +498,8 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
494
498
  </tr>
495
499
  <tr>
496
500
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>key</code></p></td>
497
- <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../enums/ControlKey.html">ControlKey</a></p></td>
498
- <td class="tableblock halign-left valign-top"><p class="tableblock">The virtual key being interacted with.</p></td>
501
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../enums/ControlKey.html">ControlKey</a></code></p></td>
502
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The abstract configured identity of the control key being interacted with.</p></td>
499
503
  </tr>
500
504
  </tbody>
501
505
  </table>
@@ -539,8 +543,8 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
539
543
  </tr>
540
544
  <tr>
541
545
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>key</code></p></td>
542
- <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="../enums/ControlKey.html">ControlKey</a></p></td>
543
- <td class="tableblock halign-left valign-top"><p class="tableblock">The key that was released.</p></td>
546
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../enums/ControlKey.html">ControlKey</a></code></p></td>
547
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The exact registered identity of the control key that was released.</p></td>
544
548
  </tr>
545
549
  </tbody>
546
550
  </table>
@@ -7,6 +7,7 @@
7
7
  <meta name="generator" content="Asciidoctor 2.0.20">
8
8
  <meta name="description" content="Specialized math utilities for converting between Grid, Display, and Pixel coordinate systems.">
9
9
  <meta name="keywords" content="coordinates, math, grid, display, conversion, helper">
10
+ <meta name="author" content="== Architectural Purpose">
10
11
  <title>CoordinateHelper Reference</title>
11
12
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
12
13
  <style>
@@ -440,6 +441,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
440
441
  <body class="article toc2 toc-left">
441
442
  <div id="header">
442
443
  <h1>CoordinateHelper Reference</h1>
444
+ <div class="details">
445
+ <span id="author" class="author">== Architectural Purpose</span><br>
446
+ </div>
443
447
  <div id="toc" class="toc2">
444
448
  <div id="toctitle">Table of Contents</div>
445
449
  <ul class="sectlevel1">
@@ -459,7 +463,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
459
463
  <div id="preamble">
460
464
  <div class="sectionbody">
461
465
  <div class="paragraph">
462
- <p>The <code>CoordinateHelper</code> is a static utility class that handles translations between different coordinate systems: the logical <a href="../modules/GameGrid.html">Game Grid</a>, the normalized Display area, and absolute pixel positions.</p>
466
+ <p>The <code>CoordinateHelper</code> acts as the engine&#8217;s translation layer between the different abstract mathematical models (e.g., the logical <code><a href="../modules/GameGrid.html">Game Grid</a></code> or scaling normalized values from 0.0 to 1.0) and the absolute physical layout on screen. It ensures consistency in calculating element sizes dynamically so interfaces remain strictly responsive to the runtime canvas resolution.</p>
463
467
  </div>
464
468
  </div>
465
469
  </div>
@@ -497,7 +501,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
497
501
  <p><strong>Returns</strong></p>
498
502
  </div>
499
503
  <div class="paragraph">
500
- <p><code><a href="../types/Coordinate.html">Coordinate</a></code> - The normalized <code>{x, y}</code> point.</p>
504
+ <p><code><a href="../types/Coordinate.html">Coordinate</a></code> - The new coordinate structure scaled proportionately to the physical base canvas width/height.</p>
501
505
  </div>
502
506
  <hr>
503
507
  </div>
@@ -524,12 +528,12 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
524
528
  <tr>
525
529
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
526
530
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
527
- <td class="tableblock halign-left valign-top"><p class="tableblock">Normalized horizontal position (0.0 to 1.0).</p></td>
531
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The relative or normalized input X horizontal position (0.0 to 1.0).</p></td>
528
532
  </tr>
529
533
  <tr>
530
534
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>displayWidth</code></p></td>
531
535
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
532
- <td class="tableblock halign-left valign-top"><p class="tableblock">The total width of the display area.</p></td>
536
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The dynamically calculated width of the central display area.</p></td>
533
537
  </tr>
534
538
  </tbody>
535
539
  </table>
@@ -564,12 +568,12 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
564
568
  <tr>
565
569
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>y</code></p></td>
566
570
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
567
- <td class="tableblock halign-left valign-top"><p class="tableblock">Normalized vertical position (0.0 to 1.0).</p></td>
571
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The relative or normalized input Y vertical position (0.0 to 1.0).</p></td>
568
572
  </tr>
569
573
  <tr>
570
574
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>displayHeight</code></p></td>
571
575
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
572
- <td class="tableblock halign-left valign-top"><p class="tableblock">The total height of the display area.</p></td>
576
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The dynamically calculated height of the central display area.</p></td>
573
577
  </tr>
574
578
  </tbody>
575
579
  </table>
@@ -604,12 +608,12 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
604
608
  <tr>
605
609
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
606
610
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
607
- <td class="tableblock halign-left valign-top"><p class="tableblock">Normalized horizontal position (0.0 to 1.0) relative to the HUD area.</p></td>
611
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The relative or normalized X position specifically within the bounded HUD compartment.</p></td>
608
612
  </tr>
609
613
  <tr>
610
614
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>displayWidth</code></p></td>
611
615
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
612
- <td class="tableblock halign-left valign-top"><p class="tableblock">The width of the main display (used to calculate the HUD offset).</p></td>
616
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The total real width of the central display (used for zero-point alignment offset calculation).</p></td>
613
617
  </tr>
614
618
  </tbody>
615
619
  </table>
@@ -644,12 +648,12 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
644
648
  <tr>
645
649
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>y</code></p></td>
646
650
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
647
- <td class="tableblock halign-left valign-top"><p class="tableblock">Normalized vertical position (0.0 to 1.0) relative to the HUD area.</p></td>
651
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The relative or normalized Y position specifically within the bounded HUD compartment.</p></td>
648
652
  </tr>
649
653
  <tr>
650
654
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>displayHeight</code></p></td>
651
655
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
652
- <td class="tableblock halign-left valign-top"><p class="tableblock">The total height of the display area.</p></td>
656
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The absolute pixel height assigned logically to the central display (used for scaled positioning bounds).</p></td>
653
657
  </tr>
654
658
  </tbody>
655
659
  </table>
@@ -7,6 +7,7 @@
7
7
  <meta name="generator" content="Asciidoctor 2.0.20">
8
8
  <meta name="description" content="Generic utilities for calculating relative sizes and positions within containers.">
9
9
  <meta name="keywords" content="relative, sizing, positioning, layout, helper">
10
+ <meta name="author" content="== Architectural Purpose">
10
11
  <title>RelativeValuesHelper Reference</title>
11
12
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
12
13
  <style>
@@ -440,6 +441,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
440
441
  <body class="article toc2 toc-left">
441
442
  <div id="header">
442
443
  <h1>RelativeValuesHelper Reference</h1>
444
+ <div class="details">
445
+ <span id="author" class="author">== Architectural Purpose</span><br>
446
+ </div>
443
447
  <div id="toc" class="toc2">
444
448
  <div id="toctitle">Table of Contents</div>
445
449
  <ul class="sectlevel1">
@@ -456,7 +460,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
456
460
  <div id="preamble">
457
461
  <div class="sectionbody">
458
462
  <div class="paragraph">
459
- <p>The <code>RelativeValuesHelper</code> provides conversion utilities for scaling absolute sizes to the current canvas dimensions, enabling responsive layouts.</p>
463
+ <p>The <code>RelativeValuesHelper</code> provides isolated mathematical layout functions specifically designed to scale absolute sizes to the base runtime canvas. It guarantees isolated calculations for responsive dimensional generation dynamically without hardcoding absolute <code>p5</code> rendering parameters.</p>
460
464
  </div>
461
465
  </div>
462
466
  </div>
@@ -486,7 +490,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
486
490
  <tr>
487
491
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>size</code></p></td>
488
492
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
489
- <td class="tableblock halign-left valign-top"><p class="tableblock">A float between 0.0 and 1.0 representing percentage of width.</p></td>
493
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The desired scale fraction bounded between 0.0 and 1.0 representing percentage of width.</p></td>
490
494
  </tr>
491
495
  </tbody>
492
496
  </table>
@@ -521,7 +525,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
521
525
  <tr>
522
526
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>size</code></p></td>
523
527
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
524
- <td class="tableblock halign-left valign-top"><p class="tableblock">A float between 0.0 and 1.0 representing percentage of height.</p></td>
528
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The desired scale fraction bounded between 0.0 and 1.0 representing percentage of height.</p></td>
525
529
  </tr>
526
530
  </tbody>
527
531
  </table>
@@ -443,17 +443,19 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
443
443
  <div id="toc" class="toc2">
444
444
  <div id="toctitle">Table of Contents</div>
445
445
  <ul class="sectlevel1">
446
- <li><a href="#methods">1. Methods</a>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#methods">2. Methods</a>
447
448
  <ul class="sectlevel2">
448
- <li><a href="#getdebugdata-recordstring-string-number-boolean">1.1. <code>getDebugData(): Record&lt;string, string | number | boolean&gt;</code></a></li>
449
+ <li><a href="#getdebugdata-recordstring-string-number-boolean">2.1. <code>getDebugData(): Record&lt;string, string | number | boolean&gt;</code></a></li>
449
450
  </ul>
450
451
  </li>
451
- <li><a href="#general-usage">2. General Usage</a></li>
452
+ <li><a href="#general-usage">3. General Usage</a></li>
452
453
  </ul>
453
454
  </div>
454
455
  </div>
455
456
  <div id="content">
456
- <div id="preamble">
457
+ <div class="sect1">
458
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
457
459
  <div class="sectionbody">
458
460
  <div class="paragraph">
459
461
  <p>Contract for modules that provide transparency to the developer.</p>
@@ -461,10 +463,10 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
461
463
  </div>
462
464
  </div>
463
465
  <div class="sect1">
464
- <h2 id="methods"><a class="link" href="#methods">1. Methods</a></h2>
466
+ <h2 id="methods"><a class="link" href="#methods">2. Methods</a></h2>
465
467
  <div class="sectionbody">
466
468
  <div class="sect2">
467
- <h3 id="getdebugdata-recordstring-string-number-boolean"><a class="link" href="#getdebugdata-recordstring-string-number-boolean">1.1. <code>getDebugData(): Record&lt;string, string | number | boolean&gt;</code></a></h3>
469
+ <h3 id="getdebugdata-recordstring-string-number-boolean"><a class="link" href="#getdebugdata-recordstring-string-number-boolean">2.1. <code>getDebugData(): Record&lt;string, string | number | boolean&gt;</code></a></h3>
468
470
  <div class="paragraph">
469
471
  <p>Returns a dictionary of internal metrics for real-time inspection.</p>
470
472
  </div>
@@ -478,7 +480,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
478
480
  </div>
479
481
  </div>
480
482
  <div class="sect1">
481
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
483
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
482
484
  <div class="sectionbody">
483
485
  <div class="paragraph">
484
486
  <p>When implemented, the <a href="../modules/Debugger.html">Debugger</a> module will automatically create a UI section for the component and refresh its data every logic tick.</p>