brick-engine-js 1.0.21 → 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 +92 -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 +52 -18
  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 +214 -45
  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,41 +443,43 @@ 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="#properties">1. Properties</a></li>
447
- <li><a href="#methods">2. Methods</a>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#properties">2. Properties</a></li>
448
+ <li><a href="#methods">3. Methods</a>
448
449
  <ul class="sectlevel2">
449
- <li><a href="#getgrid-cell">2.1. <code>getGrid(): Cell[][]</code></a></li>
450
- <li><a href="#resetgrid-void">2.2. <code>resetGrid(): void</code></a></li>
451
- <li><a href="#foreachcallback-cell-cell-void-void">2.3. <code>forEach(callback: (cell: Cell) &#8658; void): void</code></a></li>
452
- <li><a href="#isvalidcoordinatecoordinate-coordinate-boolean">2.4. <code>isValidCoordinate(coordinate: Coordinate): boolean</code></a></li>
453
- <li><a href="#getcellcoordinate-coordinate-cell-null">2.5. <code>getCell(coordinate: Coordinate): Cell | null</code></a></li>
454
- <li><a href="#setcellvaluecoordinate-coordinate-value-number-void">2.6. <code>setCellValue(coordinate: Coordinate, value: number): void</code></a></li>
455
- <li><a href="#setcellcolorcoordinate-coordinate-color-color-void">2.7. <code>setCellColor(coordinate: Coordinate, color: Color): void</code></a></li>
456
- <li><a href="#iscellactivecoordinate-coordinate-boolean">2.8. <code>isCellActive(coordinate: Coordinate): boolean</code></a></li>
457
- <li><a href="#iscellinactivecoordinate-coordinate-boolean">2.9. <code>isCellInactive(coordinate: Coordinate): boolean</code></a></li>
458
- <li><a href="#isrowfully-number-boolean">2.10. <code>isRowFull(y: number): boolean</code></a></li>
459
- <li><a href="#isrowemptyy-number-boolean">2.11. <code>isRowEmpty(y: number): boolean</code></a></li>
460
- <li><a href="#clearrowy-number-void">2.12. <code>clearRow(y: number): void</code></a></li>
461
- <li><a href="#shiftrowsdownfromy-number-void">2.13. <code>shiftRowsDown(fromY: number): void</code></a></li>
462
- <li><a href="#shiftrowsupfromy-number-void">2.14. <code>shiftRowsUp(fromY: number): void</code></a></li>
463
- <li><a href="#clearfullrows-number">2.15. <code>clearFullRows(): number</code></a></li>
464
- <li><a href="#iscolumnfullx-number-boolean">2.16. <code>isColumnFull(x: number): boolean</code></a></li>
465
- <li><a href="#iscolumnemptyx-number-boolean">2.17. <code>isColumnEmpty(x: number): boolean</code></a></li>
466
- <li><a href="#clearcolumnx-number-void">2.18. <code>clearColumn(x: number): void</code></a></li>
467
- <li><a href="#shiftcolumnsrightfromx-number-void">2.19. <code>shiftColumnsRight(fromX: number): void</code></a></li>
468
- <li><a href="#shiftcolumnsleftfromx-number-void">2.20. <code>shiftColumnsLeft(fromX: number): void</code></a></li>
469
- <li><a href="#clearfullcolumns-number">2.21. <code>clearFullColumns(): number</code></a></li>
470
- <li><a href="#isareaoccupiedcoordinates-coordinate-boolean">2.22. <code>isAreaOccupied(coordinates: Coordinate[]): boolean</code></a></li>
471
- <li><a href="#fillareastart-coordinate-end-coordinate-value-number-color-color-void">2.23. <code>fillArea(start: Coordinate, end: Coordinate, value: number, color: Color): void</code></a></li>
472
- <li><a href="#stamppiececoordinates-coordinate-value-number-color-color-void">2.24. <code>stampPiece(coordinates: Coordinate[], value: number, color: Color): void</code></a></li>
450
+ <li><a href="#getgrid-cell">3.1. <code>getGrid(): Cell[][]</code></a></li>
451
+ <li><a href="#resetgrid-void">3.2. <code>resetGrid(): void</code></a></li>
452
+ <li><a href="#foreachcallback-cell-cell-void-void">3.3. <code>forEach(callback: (cell: Cell) &#8658; void): void</code></a></li>
453
+ <li><a href="#iscoordinatevalidcoordinate-coordinate-boolean">3.4. <code>isCoordinateValid(coordinate: Coordinate): boolean</code></a></li>
454
+ <li><a href="#getcellcoordinate-coordinate-cell-null">3.5. <code>getCell(coordinate: Coordinate): Cell | null</code></a></li>
455
+ <li><a href="#setcellvaluecoordinate-coordinate-value-number-void">3.6. <code>setCellValue(coordinate: Coordinate, value: number): void</code></a></li>
456
+ <li><a href="#setcellcolorcoordinate-coordinate-color-color-void">3.7. <code>setCellColor(coordinate: Coordinate, color: Color): void</code></a></li>
457
+ <li><a href="#iscellactivecoordinate-coordinate-boolean">3.8. <code>isCellActive(coordinate: Coordinate): boolean</code></a></li>
458
+ <li><a href="#iscellinactivecoordinate-coordinate-boolean">3.9. <code>isCellInactive(coordinate: Coordinate): boolean</code></a></li>
459
+ <li><a href="#isrowfully-number-boolean">3.10. <code>isRowFull(y: number): boolean</code></a></li>
460
+ <li><a href="#isrowemptyy-number-boolean">3.11. <code>isRowEmpty(y: number): boolean</code></a></li>
461
+ <li><a href="#clearrowy-number-void">3.12. <code>clearRow(y: number): void</code></a></li>
462
+ <li><a href="#shiftrowsdownfromy-number-void">3.13. <code>shiftRowsDown(fromY: number): void</code></a></li>
463
+ <li><a href="#shiftrowsupfromy-number-void">3.14. <code>shiftRowsUp(fromY: number): void</code></a></li>
464
+ <li><a href="#clearfullrows-number">3.15. <code>clearFullRows(): number</code></a></li>
465
+ <li><a href="#iscolumnfullx-number-boolean">3.16. <code>isColumnFull(x: number): boolean</code></a></li>
466
+ <li><a href="#iscolumnemptyx-number-boolean">3.17. <code>isColumnEmpty(x: number): boolean</code></a></li>
467
+ <li><a href="#clearcolumnx-number-void">3.18. <code>clearColumn(x: number): void</code></a></li>
468
+ <li><a href="#shiftcolumnsrightfromx-number-void">3.19. <code>shiftColumnsRight(fromX: number): void</code></a></li>
469
+ <li><a href="#shiftcolumnsleftfromx-number-void">3.20. <code>shiftColumnsLeft(fromX: number): void</code></a></li>
470
+ <li><a href="#clearfullcolumns-number">3.21. <code>clearFullColumns(): number</code></a></li>
471
+ <li><a href="#isareaoccupiedcoordinates-coordinate-boolean">3.22. <code>isAreaOccupied(coordinates: Coordinate[]): boolean</code></a></li>
472
+ <li><a href="#fillareastart-coordinate-end-coordinate-value-number-color-color-void">3.23. <code>fillArea(start: Coordinate, end: Coordinate, value: number, color: Color): void</code></a></li>
473
+ <li><a href="#stamppiececoordinates-coordinate-value-number-color-color-void">3.24. <code>stampPiece(coordinates: Coordinate[], value: number, color: Color): void</code></a></li>
473
474
  </ul>
474
475
  </li>
475
- <li><a href="#general-usage">3. General Usage</a></li>
476
+ <li><a href="#general-usage">4. General Usage</a></li>
476
477
  </ul>
477
478
  </div>
478
479
  </div>
479
480
  <div id="content">
480
- <div id="preamble">
481
+ <div class="sect1">
482
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
481
483
  <div class="sectionbody">
482
484
  <div class="paragraph">
483
485
  <p>Interface defining the behaviors of a 2D grid of cells.</p>
@@ -485,7 +487,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
485
487
  </div>
486
488
  </div>
487
489
  <div class="sect1">
488
- <h2 id="properties"><a class="link" href="#properties">1. Properties</a></h2>
490
+ <h2 id="properties"><a class="link" href="#properties">2. Properties</a></h2>
489
491
  <div class="sectionbody">
490
492
  <table class="tableblock frame-all grid-all stretch">
491
493
  <colgroup>
@@ -509,15 +511,35 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
509
511
  <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
510
512
  <td class="tableblock halign-left valign-top"><p class="tableblock">The number of rows in the grid.</p></td>
511
513
  </tr>
514
+ <tr>
515
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>topRow</code></p></td>
516
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
517
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The index of the top-most row (always 0).</p></td>
518
+ </tr>
519
+ <tr>
520
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>bottomRow</code></p></td>
521
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
522
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The index of the bottom-most row (<code>height - 1</code>).</p></td>
523
+ </tr>
524
+ <tr>
525
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>leftColumn</code></p></td>
526
+ <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">The index of the left-most column (always 0).</p></td>
528
+ </tr>
529
+ <tr>
530
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>rightColumn</code></p></td>
531
+ <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 index of the right-most column (<code>width - 1</code>).</p></td>
533
+ </tr>
512
534
  </tbody>
513
535
  </table>
514
536
  </div>
515
537
  </div>
516
538
  <div class="sect1">
517
- <h2 id="methods"><a class="link" href="#methods">2. Methods</a></h2>
539
+ <h2 id="methods"><a class="link" href="#methods">3. Methods</a></h2>
518
540
  <div class="sectionbody">
519
541
  <div class="sect2">
520
- <h3 id="getgrid-cell"><a class="link" href="#getgrid-cell">2.1. <code>getGrid(): <a href="../../types/Cell.html">Cell</a>[][]</code></a></h3>
542
+ <h3 id="getgrid-cell"><a class="link" href="#getgrid-cell">3.1. <code>getGrid(): <a href="../../types/Cell.html">Cell</a>[][]</code></a></h3>
521
543
  <div class="paragraph">
522
544
  <p>Returns the raw 2D array of <code><a href="../../types/Cell.html">Cell</a></code> objects representing the grid state.</p>
523
545
  </div>
@@ -530,14 +552,14 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
530
552
  <hr>
531
553
  </div>
532
554
  <div class="sect2">
533
- <h3 id="resetgrid-void"><a class="link" href="#resetgrid-void">2.2. <code>resetGrid(): void</code></a></h3>
555
+ <h3 id="resetgrid-void"><a class="link" href="#resetgrid-void">3.2. <code>resetGrid(): void</code></a></h3>
534
556
  <div class="paragraph">
535
557
  <p>Clears all cell values and resets colors to <code><a href="../../enums/Color.html">DEFAULT</a></code>.</p>
536
558
  </div>
537
559
  <hr>
538
560
  </div>
539
561
  <div class="sect2">
540
- <h3 id="foreachcallback-cell-cell-void-void"><a class="link" href="#foreachcallback-cell-cell-void-void">2.3. <code>forEach(callback: (cell: <a href="../../types/Cell.html">Cell</a>) &#8658; void): void</code></a></h3>
562
+ <h3 id="foreachcallback-cell-cell-void-void"><a class="link" href="#foreachcallback-cell-cell-void-void">3.3. <code>forEach(callback: (cell: <a href="../../types/Cell.html">Cell</a>) &#8658; void): void</code></a></h3>
541
563
  <div class="paragraph">
542
564
  <p>Iterates over every cell in the grid, executing the provided callback.</p>
543
565
  </div>
@@ -566,7 +588,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
566
588
  <hr>
567
589
  </div>
568
590
  <div class="sect2">
569
- <h3 id="isvalidcoordinatecoordinate-coordinate-boolean"><a class="link" href="#isvalidcoordinatecoordinate-coordinate-boolean">2.4. <code>isValidCoordinate(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): boolean</code></a></h3>
591
+ <h3 id="iscoordinatevalidcoordinate-coordinate-boolean"><a class="link" href="#iscoordinatevalidcoordinate-coordinate-boolean">3.4. <code>isCoordinateValid(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): boolean</code></a></h3>
570
592
  <div class="paragraph">
571
593
  <p>Returns <code>true</code> if the given coordinate falls within the grid boundaries.</p>
572
594
  </div>
@@ -601,7 +623,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
601
623
  <hr>
602
624
  </div>
603
625
  <div class="sect2">
604
- <h3 id="getcellcoordinate-coordinate-cell-null"><a class="link" href="#getcellcoordinate-coordinate-cell-null">2.5. <code>getCell(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): <a href="../../types/Cell.html">Cell</a> | null</code></a></h3>
626
+ <h3 id="getcellcoordinate-coordinate-cell-null"><a class="link" href="#getcellcoordinate-coordinate-cell-null">3.5. <code>getCell(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): <a href="../../types/Cell.html">Cell</a> | null</code></a></h3>
605
627
  <div class="paragraph">
606
628
  <p>Retrieves the <code><a href="../../types/Cell.html">Cell</a></code> object at the specified coordinate.</p>
607
629
  </div>
@@ -636,7 +658,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
636
658
  <hr>
637
659
  </div>
638
660
  <div class="sect2">
639
- <h3 id="setcellvaluecoordinate-coordinate-value-number-void"><a class="link" href="#setcellvaluecoordinate-coordinate-value-number-void">2.6. <code>setCellValue(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>, value: number): void</code></a></h3>
661
+ <h3 id="setcellvaluecoordinate-coordinate-value-number-void"><a class="link" href="#setcellvaluecoordinate-coordinate-value-number-void">3.6. <code>setCellValue(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>, value: number): void</code></a></h3>
640
662
  <div class="paragraph">
641
663
  <p>Updates the numeric value of the cell at the given coordinate.</p>
642
664
  </div>
@@ -670,7 +692,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
670
692
  <hr>
671
693
  </div>
672
694
  <div class="sect2">
673
- <h3 id="setcellcolorcoordinate-coordinate-color-color-void"><a class="link" href="#setcellcolorcoordinate-coordinate-color-color-void">2.7. <code>setCellColor(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>, color: <a href="../../enums/Color.html">Color</a>): void</code></a></h3>
695
+ <h3 id="setcellcolorcoordinate-coordinate-color-color-void"><a class="link" href="#setcellcolorcoordinate-coordinate-color-color-void">3.7. <code>setCellColor(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>, color: <a href="../../enums/Color.html">Color</a>): void</code></a></h3>
674
696
  <div class="paragraph">
675
697
  <p>Updates the visual color of the cell at the given coordinate.</p>
676
698
  </div>
@@ -704,7 +726,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
704
726
  <hr>
705
727
  </div>
706
728
  <div class="sect2">
707
- <h3 id="iscellactivecoordinate-coordinate-boolean"><a class="link" href="#iscellactivecoordinate-coordinate-boolean">2.8. <code>isCellActive(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): boolean</code></a></h3>
729
+ <h3 id="iscellactivecoordinate-coordinate-boolean"><a class="link" href="#iscellactivecoordinate-coordinate-boolean">3.8. <code>isCellActive(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): boolean</code></a></h3>
708
730
  <div class="paragraph">
709
731
  <p>Returns <code>true</code> if the cell&#8217;s value is greater than <code>0</code>.</p>
710
732
  </div>
@@ -739,7 +761,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
739
761
  <hr>
740
762
  </div>
741
763
  <div class="sect2">
742
- <h3 id="iscellinactivecoordinate-coordinate-boolean"><a class="link" href="#iscellinactivecoordinate-coordinate-boolean">2.9. <code>isCellInactive(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): boolean</code></a></h3>
764
+ <h3 id="iscellinactivecoordinate-coordinate-boolean"><a class="link" href="#iscellinactivecoordinate-coordinate-boolean">3.9. <code>isCellInactive(coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): boolean</code></a></h3>
743
765
  <div class="paragraph">
744
766
  <p>Returns <code>true</code> if the cell&#8217;s value is <code>0</code>.</p>
745
767
  </div>
@@ -774,7 +796,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
774
796
  <hr>
775
797
  </div>
776
798
  <div class="sect2">
777
- <h3 id="isrowfully-number-boolean"><a class="link" href="#isrowfully-number-boolean">2.10. <code>isRowFull(y: number): boolean</code></a></h3>
799
+ <h3 id="isrowfully-number-boolean"><a class="link" href="#isrowfully-number-boolean">3.10. <code>isRowFull(y: number): boolean</code></a></h3>
778
800
  <div class="paragraph">
779
801
  <p>Returns <code>true</code> if every cell in the specified row <code>y</code> is active.</p>
780
802
  </div>
@@ -809,7 +831,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
809
831
  <hr>
810
832
  </div>
811
833
  <div class="sect2">
812
- <h3 id="isrowemptyy-number-boolean"><a class="link" href="#isrowemptyy-number-boolean">2.11. <code>isRowEmpty(y: number): boolean</code></a></h3>
834
+ <h3 id="isrowemptyy-number-boolean"><a class="link" href="#isrowemptyy-number-boolean">3.11. <code>isRowEmpty(y: number): boolean</code></a></h3>
813
835
  <div class="paragraph">
814
836
  <p>Returns <code>true</code> if every cell in the specified row <code>y</code> is inactive.</p>
815
837
  </div>
@@ -844,7 +866,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
844
866
  <hr>
845
867
  </div>
846
868
  <div class="sect2">
847
- <h3 id="clearrowy-number-void"><a class="link" href="#clearrowy-number-void">2.12. <code>clearRow(y: number): void</code></a></h3>
869
+ <h3 id="clearrowy-number-void"><a class="link" href="#clearrowy-number-void">3.12. <code>clearRow(y: number): void</code></a></h3>
848
870
  <div class="paragraph">
849
871
  <p>Resets all cells in row <code>y</code> to their inactive state.</p>
850
872
  </div>
@@ -873,7 +895,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
873
895
  <hr>
874
896
  </div>
875
897
  <div class="sect2">
876
- <h3 id="shiftrowsdownfromy-number-void"><a class="link" href="#shiftrowsdownfromy-number-void">2.13. <code>shiftRowsDown(fromY: number): void</code></a></h3>
898
+ <h3 id="shiftrowsdownfromy-number-void"><a class="link" href="#shiftrowsdownfromy-number-void">3.13. <code>shiftRowsDown(fromY: number): void</code></a></h3>
877
899
  <div class="paragraph">
878
900
  <p>Moves all rows above (and including) <code>fromY</code> down by one position.</p>
879
901
  </div>
@@ -902,7 +924,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
902
924
  <hr>
903
925
  </div>
904
926
  <div class="sect2">
905
- <h3 id="shiftrowsupfromy-number-void"><a class="link" href="#shiftrowsupfromy-number-void">2.14. <code>shiftRowsUp(fromY: number): void</code></a></h3>
927
+ <h3 id="shiftrowsupfromy-number-void"><a class="link" href="#shiftrowsupfromy-number-void">3.14. <code>shiftRowsUp(fromY: number): void</code></a></h3>
906
928
  <div class="paragraph">
907
929
  <p>Moves all rows below (and including) <code>fromY</code> up by one position.</p>
908
930
  </div>
@@ -931,7 +953,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
931
953
  <hr>
932
954
  </div>
933
955
  <div class="sect2">
934
- <h3 id="clearfullrows-number"><a class="link" href="#clearfullrows-number">2.15. <code>clearFullRows(): number</code></a></h3>
956
+ <h3 id="clearfullrows-number"><a class="link" href="#clearfullrows-number">3.15. <code>clearFullRows(): number</code></a></h3>
935
957
  <div class="paragraph">
936
958
  <p>Detects, clears, and shifts rows for all full rows in the grid.</p>
937
959
  </div>
@@ -944,7 +966,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
944
966
  <hr>
945
967
  </div>
946
968
  <div class="sect2">
947
- <h3 id="iscolumnfullx-number-boolean"><a class="link" href="#iscolumnfullx-number-boolean">2.16. <code>isColumnFull(x: number): boolean</code></a></h3>
969
+ <h3 id="iscolumnfullx-number-boolean"><a class="link" href="#iscolumnfullx-number-boolean">3.16. <code>isColumnFull(x: number): boolean</code></a></h3>
948
970
  <div class="paragraph">
949
971
  <p>Returns <code>true</code> if every cell in column <code>x</code> is active.</p>
950
972
  </div>
@@ -979,7 +1001,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
979
1001
  <hr>
980
1002
  </div>
981
1003
  <div class="sect2">
982
- <h3 id="iscolumnemptyx-number-boolean"><a class="link" href="#iscolumnemptyx-number-boolean">2.17. <code>isColumnEmpty(x: number): boolean</code></a></h3>
1004
+ <h3 id="iscolumnemptyx-number-boolean"><a class="link" href="#iscolumnemptyx-number-boolean">3.17. <code>isColumnEmpty(x: number): boolean</code></a></h3>
983
1005
  <div class="paragraph">
984
1006
  <p>Returns <code>true</code> if every cell in column <code>x</code> is inactive.</p>
985
1007
  </div>
@@ -1014,7 +1036,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1014
1036
  <hr>
1015
1037
  </div>
1016
1038
  <div class="sect2">
1017
- <h3 id="clearcolumnx-number-void"><a class="link" href="#clearcolumnx-number-void">2.18. <code>clearColumn(x: number): void</code></a></h3>
1039
+ <h3 id="clearcolumnx-number-void"><a class="link" href="#clearcolumnx-number-void">3.18. <code>clearColumn(x: number): void</code></a></h3>
1018
1040
  <div class="paragraph">
1019
1041
  <p>Resets all cells in column <code>x</code> to their inactive state.</p>
1020
1042
  </div>
@@ -1043,7 +1065,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1043
1065
  <hr>
1044
1066
  </div>
1045
1067
  <div class="sect2">
1046
- <h3 id="shiftcolumnsrightfromx-number-void"><a class="link" href="#shiftcolumnsrightfromx-number-void">2.19. <code>shiftColumnsRight(fromX: number): void</code></a></h3>
1068
+ <h3 id="shiftcolumnsrightfromx-number-void"><a class="link" href="#shiftcolumnsrightfromx-number-void">3.19. <code>shiftColumnsRight(fromX: number): void</code></a></h3>
1047
1069
  <div class="paragraph">
1048
1070
  <p>Moves all columns to the left of <code>fromX</code> one position to the right.</p>
1049
1071
  </div>
@@ -1072,7 +1094,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1072
1094
  <hr>
1073
1095
  </div>
1074
1096
  <div class="sect2">
1075
- <h3 id="shiftcolumnsleftfromx-number-void"><a class="link" href="#shiftcolumnsleftfromx-number-void">2.20. <code>shiftColumnsLeft(fromX: number): void</code></a></h3>
1097
+ <h3 id="shiftcolumnsleftfromx-number-void"><a class="link" href="#shiftcolumnsleftfromx-number-void">3.20. <code>shiftColumnsLeft(fromX: number): void</code></a></h3>
1076
1098
  <div class="paragraph">
1077
1099
  <p>Moves all columns to the right of <code>fromX</code> one position to the left.</p>
1078
1100
  </div>
@@ -1101,7 +1123,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1101
1123
  <hr>
1102
1124
  </div>
1103
1125
  <div class="sect2">
1104
- <h3 id="clearfullcolumns-number"><a class="link" href="#clearfullcolumns-number">2.21. <code>clearFullColumns(): number</code></a></h3>
1126
+ <h3 id="clearfullcolumns-number"><a class="link" href="#clearfullcolumns-number">3.21. <code>clearFullColumns(): number</code></a></h3>
1105
1127
  <div class="paragraph">
1106
1128
  <p>Detects and clears all full columns.</p>
1107
1129
  </div>
@@ -1114,7 +1136,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1114
1136
  <hr>
1115
1137
  </div>
1116
1138
  <div class="sect2">
1117
- <h3 id="isareaoccupiedcoordinates-coordinate-boolean"><a class="link" href="#isareaoccupiedcoordinates-coordinate-boolean">2.22. <code>isAreaOccupied(coordinates: <a href="../../types/Coordinate.html">Coordinate</a>[]): boolean</code></a></h3>
1139
+ <h3 id="isareaoccupiedcoordinates-coordinate-boolean"><a class="link" href="#isareaoccupiedcoordinates-coordinate-boolean">3.22. <code>isAreaOccupied(coordinates: <a href="../../types/Coordinate.html">Coordinate</a>[]): boolean</code></a></h3>
1118
1140
  <div class="paragraph">
1119
1141
  <p>Returns <code>true</code> if any of the provided coordinates are already active in the grid. Used for collision detection.</p>
1120
1142
  </div>
@@ -1149,7 +1171,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1149
1171
  <hr>
1150
1172
  </div>
1151
1173
  <div class="sect2">
1152
- <h3 id="fillareastart-coordinate-end-coordinate-value-number-color-color-void"><a class="link" href="#fillareastart-coordinate-end-coordinate-value-number-color-color-void">2.23. <code>fillArea(start: <a href="../../types/Coordinate.html">Coordinate</a>, end: <a href="../../types/Coordinate.html">Coordinate</a>, value: number, color: <a href="../../enums/Color.html">Color</a>): void</code></a></h3>
1174
+ <h3 id="fillareastart-coordinate-end-coordinate-value-number-color-color-void"><a class="link" href="#fillareastart-coordinate-end-coordinate-value-number-color-color-void">3.23. <code>fillArea(start: <a href="../../types/Coordinate.html">Coordinate</a>, end: <a href="../../types/Coordinate.html">Coordinate</a>, value: number, color: <a href="../../enums/Color.html">Color</a>): void</code></a></h3>
1153
1175
  <div class="paragraph">
1154
1176
  <p>Batch updates a rectangular area defined by <code>start</code> and <code>end</code> with the given value and color.</p>
1155
1177
  </div>
@@ -1193,7 +1215,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1193
1215
  <hr>
1194
1216
  </div>
1195
1217
  <div class="sect2">
1196
- <h3 id="stamppiececoordinates-coordinate-value-number-color-color-void"><a class="link" href="#stamppiececoordinates-coordinate-value-number-color-color-void">2.24. <code>stampPiece(coordinates: <a href="../../types/Coordinate.html">Coordinate</a>[], value: number, color: <a href="../../enums/Color.html">Color</a>): void</code></a></h3>
1218
+ <h3 id="stamppiececoordinates-coordinate-value-number-color-color-void"><a class="link" href="#stamppiececoordinates-coordinate-value-number-color-color-void">3.24. <code>stampPiece(coordinates: <a href="../../types/Coordinate.html">Coordinate</a>[], value: number, color: <a href="../../enums/Color.html">Color</a>): void</code></a></h3>
1197
1219
  <div class="paragraph">
1198
1220
  <p>Applies the specified value and color to multiple discrete coordinates simultaneously.</p>
1199
1221
  </div>
@@ -1233,7 +1255,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
1233
1255
  </div>
1234
1256
  </div>
1235
1257
  <div class="sect1">
1236
- <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
1258
+ <h2 id="general-usage"><a class="link" href="#general-usage">4. General Usage</a></h2>
1237
1259
  <div class="sectionbody">
1238
1260
  <div class="paragraph">
1239
1261
  <p>The <code>Grid</code> interface is implemented by both the main <code><a href="../../modules/GameGrid.html">GameGrid</a></code> and the <code><a href="../../modules/GameHudGrid.html">GameHudGrid</a></code>.</p>
@@ -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="#rendergrid-cell-modules-gamemodules-void">1.1. <code>render(grid: Cell[][], modules: GameModules): void</code></a></li>
449
+ <li><a href="#rendergrid-cell-modules-gamemodules-void">2.1. <code>render(grid: Cell[][], modules: GameModules): void</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>Defines the core drawing contract for engine visual layers.</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="rendergrid-cell-modules-gamemodules-void"><a class="link" href="#rendergrid-cell-modules-gamemodules-void">1.1. <code>render(grid: <a href="../../types/Cell.html">Cell</a>[][], modules: <a href="../GameModules.html">GameModules</a>): void</code></a></h3>
469
+ <h3 id="rendergrid-cell-modules-gamemodules-void"><a class="link" href="#rendergrid-cell-modules-gamemodules-void">2.1. <code>render(grid: <a href="../../types/Cell.html">Cell</a>[][], modules: <a href="../GameModules.html">GameModules</a>): void</code></a></h3>
468
470
  <div class="paragraph">
469
471
  <p>Executes the drawing logic for a single frame.</p>
470
472
  </div>
@@ -499,7 +501,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
499
501
  </div>
500
502
  </div>
501
503
  <div class="sect1">
502
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
504
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
503
505
  <div class="sectionbody">
504
506
  <div class="paragraph">
505
507
  <p>Implemented by <code><a href="../../modules/DisplayRenderer.html">DisplayRenderer</a></code> and <code><a href="../../modules/HudRenderer.html">HudRenderer</a></code>. The engine&#8217;s composite renderer iterates through all registered <code>Renderer</code> implementations and calls their <code>render</code> method 60 times per second.</p>
@@ -443,19 +443,21 @@ 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="#properties">1. Properties</a></li>
447
- <li><a href="#methods">2. Methods</a>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#properties">2. Properties</a></li>
448
+ <li><a href="#methods">3. Methods</a>
448
449
  <ul class="sectlevel2">
449
- <li><a href="#addrendererrenderer-renderer-void">2.1. <code>addRenderer(renderer: Renderer): void</code></a></li>
450
- <li><a href="#rendergrid-cell-modules-gamemodules-void">2.2. <code>render(grid: Cell[][], modules: GameModules): void</code></a></li>
450
+ <li><a href="#addrendererrenderer-renderer-void">3.1. <code>addRenderer(renderer: Renderer): void</code></a></li>
451
+ <li><a href="#rendergrid-cell-modules-gamemodules-void">3.2. <code>render(grid: Cell[][], modules: GameModules): void</code></a></li>
451
452
  </ul>
452
453
  </li>
453
- <li><a href="#general-usage">3. General Usage</a></li>
454
+ <li><a href="#general-usage">4. General Usage</a></li>
454
455
  </ul>
455
456
  </div>
456
457
  </div>
457
458
  <div id="content">
458
- <div id="preamble">
459
+ <div class="sect1">
460
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
459
461
  <div class="sectionbody">
460
462
  <div class="paragraph">
461
463
  <p>An advanced renderer that manages a collection of individual layers.</p>
@@ -463,7 +465,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
463
465
  </div>
464
466
  </div>
465
467
  <div class="sect1">
466
- <h2 id="properties"><a class="link" href="#properties">1. Properties</a></h2>
468
+ <h2 id="properties"><a class="link" href="#properties">2. Properties</a></h2>
467
469
  <div class="sectionbody">
468
470
  <table class="tableblock frame-all grid-all stretch">
469
471
  <colgroup>
@@ -487,10 +489,10 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
487
489
  </div>
488
490
  </div>
489
491
  <div class="sect1">
490
- <h2 id="methods"><a class="link" href="#methods">2. Methods</a></h2>
492
+ <h2 id="methods"><a class="link" href="#methods">3. Methods</a></h2>
491
493
  <div class="sectionbody">
492
494
  <div class="sect2">
493
- <h3 id="addrendererrenderer-renderer-void"><a class="link" href="#addrendererrenderer-renderer-void">2.1. <code>addRenderer(renderer: <a href="Renderer.html">Renderer</a>): void</code></a></h3>
495
+ <h3 id="addrendererrenderer-renderer-void"><a class="link" href="#addrendererrenderer-renderer-void">3.1. <code>addRenderer(renderer: <a href="Renderer.html">Renderer</a>): void</code></a></h3>
494
496
  <div class="paragraph">
495
497
  <p>Attaches a new visual layer.</p>
496
498
  </div>
@@ -519,7 +521,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
519
521
  <hr>
520
522
  </div>
521
523
  <div class="sect2">
522
- <h3 id="rendergrid-cell-modules-gamemodules-void"><a class="link" href="#rendergrid-cell-modules-gamemodules-void">2.2. <code>render(grid: <a href="../../types/Cell.html">Cell</a>[][], modules: <a href="../GameModules.html">GameModules</a>): void</code></a></h3>
524
+ <h3 id="rendergrid-cell-modules-gamemodules-void"><a class="link" href="#rendergrid-cell-modules-gamemodules-void">3.2. <code>render(grid: <a href="../../types/Cell.html">Cell</a>[][], modules: <a href="../GameModules.html">GameModules</a>): void</code></a></h3>
523
525
  <div class="paragraph">
524
526
  <p>Orchestrates the rendering call for all layers.</p>
525
527
  </div>
@@ -554,7 +556,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
554
556
  </div>
555
557
  </div>
556
558
  <div class="sect1">
557
- <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
559
+ <h2 id="general-usage"><a class="link" href="#general-usage">4. General Usage</a></h2>
558
560
  <div class="sectionbody">
559
561
  <div class="paragraph">
560
562
  <p>This interface is the entry point for the visual system. It ensures that the background, the game grid, and the HUD are drawn in the correct order and with synchronized metrics.</p>
@@ -443,23 +443,25 @@ 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="#properties">1. Properties</a></li>
447
- <li><a href="#methods">2. Methods</a>
446
+ <li><a href="#architectural-purpose">1. Architectural Purpose</a></li>
447
+ <li><a href="#properties">2. Properties</a></li>
448
+ <li><a href="#methods">3. Methods</a>
448
449
  <ul class="sectlevel2">
449
- <li><a href="#increasescoreamount-number-void">2.1. <code>increaseScore(amount: number): void</code></a></li>
450
- <li><a href="#resetscore-void">2.2. <code>resetScore(): void</code></a></li>
451
- <li><a href="#getformattedscoredigits-number-string">2.3. <code>getFormattedScore(digits?: number): string</code></a></li>
452
- <li><a href="#increaselevelamount-number-void">2.4. <code>increaseLevel(amount: number): void</code></a></li>
453
- <li><a href="#resetlevel-void">2.5. <code>resetLevel(): void</code></a></li>
454
- <li><a href="#setupgamehighscoreid-string-void">2.6. <code>setupGameHighScore(id: string): void</code></a></li>
450
+ <li><a href="#increasescoreamount-number-void">3.1. <code>increaseScore(amount: number): void</code></a></li>
451
+ <li><a href="#resetscore-void">3.2. <code>resetScore(): void</code></a></li>
452
+ <li><a href="#getformattedscoredigits-number-string">3.3. <code>getFormattedScore(digits?: number): string</code></a></li>
453
+ <li><a href="#increaselevelamount-number-void">3.4. <code>increaseLevel(amount: number): void</code></a></li>
454
+ <li><a href="#resetlevel-void">3.5. <code>resetLevel(): void</code></a></li>
455
+ <li><a href="#setupgamehighscoreid-string-void">3.6. <code>setupGameHighScore(id: string): void</code></a></li>
455
456
  </ul>
456
457
  </li>
457
- <li><a href="#general-usage">3. General Usage</a></li>
458
+ <li><a href="#general-usage">4. General Usage</a></li>
458
459
  </ul>
459
460
  </div>
460
461
  </div>
461
462
  <div id="content">
462
- <div id="preamble">
463
+ <div class="sect1">
464
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
463
465
  <div class="sectionbody">
464
466
  <div class="paragraph">
465
467
  <p>Interface for tracking session performance, multipliers, and levels.</p>
@@ -467,7 +469,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
467
469
  </div>
468
470
  </div>
469
471
  <div class="sect1">
470
- <h2 id="properties"><a class="link" href="#properties">1. Properties</a></h2>
472
+ <h2 id="properties"><a class="link" href="#properties">2. Properties</a></h2>
471
473
  <div class="sectionbody">
472
474
  <table class="tableblock frame-all grid-all stretch">
473
475
  <colgroup>
@@ -506,10 +508,10 @@ 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="methods"><a class="link" href="#methods">2. Methods</a></h2>
511
+ <h2 id="methods"><a class="link" href="#methods">3. Methods</a></h2>
510
512
  <div class="sectionbody">
511
513
  <div class="sect2">
512
- <h3 id="increasescoreamount-number-void"><a class="link" href="#increasescoreamount-number-void">2.1. <code>increaseScore(amount: number): void</code></a></h3>
514
+ <h3 id="increasescoreamount-number-void"><a class="link" href="#increasescoreamount-number-void">3.1. <code>increaseScore(amount: number): void</code></a></h3>
513
515
  <div class="paragraph">
514
516
  <p>Adds points to the total, automatically applying any active multipliers.</p>
515
517
  </div>
@@ -538,14 +540,14 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
538
540
  <hr>
539
541
  </div>
540
542
  <div class="sect2">
541
- <h3 id="resetscore-void"><a class="link" href="#resetscore-void">2.2. <code>resetScore(): void</code></a></h3>
543
+ <h3 id="resetscore-void"><a class="link" href="#resetscore-void">3.2. <code>resetScore(): void</code></a></h3>
542
544
  <div class="paragraph">
543
545
  <p>Resets the session score to <code>0</code>.</p>
544
546
  </div>
545
547
  <hr>
546
548
  </div>
547
549
  <div class="sect2">
548
- <h3 id="getformattedscoredigits-number-string"><a class="link" href="#getformattedscoredigits-number-string">2.3. <code>getFormattedScore(digits?: number): string</code></a></h3>
550
+ <h3 id="getformattedscoredigits-number-string"><a class="link" href="#getformattedscoredigits-number-string">3.3. <code>getFormattedScore(digits?: number): string</code></a></h3>
549
551
  <div class="paragraph">
550
552
  <p>Returns a string representation of the score padded with leading zeros (defaulting to 6 digits).</p>
551
553
  </div>
@@ -580,7 +582,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
580
582
  <hr>
581
583
  </div>
582
584
  <div class="sect2">
583
- <h3 id="increaselevelamount-number-void"><a class="link" href="#increaselevelamount-number-void">2.4. <code>increaseLevel(amount: number): void</code></a></h3>
585
+ <h3 id="increaselevelamount-number-void"><a class="link" href="#increaselevelamount-number-void">3.4. <code>increaseLevel(amount: number): void</code></a></h3>
584
586
  <div class="paragraph">
585
587
  <p>Increments the current game level up to <code>maxLevel</code>.</p>
586
588
  </div>
@@ -609,14 +611,14 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
609
611
  <hr>
610
612
  </div>
611
613
  <div class="sect2">
612
- <h3 id="resetlevel-void"><a class="link" href="#resetlevel-void">2.5. <code>resetLevel(): void</code></a></h3>
614
+ <h3 id="resetlevel-void"><a class="link" href="#resetlevel-void">3.5. <code>resetLevel(): void</code></a></h3>
613
615
  <div class="paragraph">
614
616
  <p>Resets the game difficulty level to its initial value.</p>
615
617
  </div>
616
618
  <hr>
617
619
  </div>
618
620
  <div class="sect2">
619
- <h3 id="setupgamehighscoreid-string-void"><a class="link" href="#setupgamehighscoreid-string-void">2.6. <code>setupGameHighScore(id: string): void</code></a></h3>
621
+ <h3 id="setupgamehighscoreid-string-void"><a class="link" href="#setupgamehighscoreid-string-void">3.6. <code>setupGameHighScore(id: string): void</code></a></h3>
620
622
  <div class="paragraph">
621
623
  <p>Initializes the high score for a specific game, loading it from namespaced storage.</p>
622
624
  </div>
@@ -646,7 +648,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
646
648
  </div>
647
649
  </div>
648
650
  <div class="sect1">
649
- <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
651
+ <h2 id="general-usage"><a class="link" href="#general-usage">4. General Usage</a></h2>
650
652
  <div class="sectionbody">
651
653
  <div class="paragraph">
652
654
  <p>Implemented by <code><a href="../../modules/GameScore.html">GameScore</a></code>. It handles the numeric progression of the game and formats the data for display on the HUD.</p>