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
@@ -442,22 +442,26 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
442
442
  <div id="toc" class="toc2">
443
443
  <div id="toctitle">Table of Contents</div>
444
444
  <ul class="sectlevel1">
445
- <li><a href="#_attributes_properties_values">1. Attributes / Properties / Values</a></li>
446
- <li><a href="#_api_reference">2. API Reference</a>
445
+ <li><a href="#_architectural_purpose">1. Architectural Purpose</a></li>
446
+ <li><a href="#_attributes_properties_values">2. Attributes / Properties / Values</a></li>
447
+ <li><a href="#_api_reference">3. API Reference</a>
447
448
  <ul class="sectlevel2">
448
- <li><a href="#_registerserializable_serializable_void">2.1. <code>register(serializable: Serializable): void</code></a></li>
449
- <li><a href="#_savesession_void">2.2. <code>saveSession(): void</code></a></li>
450
- <li><a href="#_clearsession_void">2.3. <code>clearSession(): void</code></a></li>
451
- <li><a href="#_setshowmodalfunctionshowmodal_onconfirm_void_oncancel_void_void_void">2.4. <code>setShowModalFunction(showModal: (onConfirm: () &#8658; void, onCancel: () &#8658; void) &#8658; void): void</code></a></li>
452
- <li><a href="#_setsessionenabledenabled_boolean_void">2.5. <code>setSessionEnabled(enabled: boolean): void</code></a></li>
449
+ <li><a href="#_registerserializable_serializable_void">3.1. <code>register(serializable: Serializable): void</code></a></li>
450
+ <li><a href="#_savesession_void">3.2. <code>saveSession(): void</code></a></li>
451
+ <li><a href="#_issessionresolved_boolean">3.3. <code>isSessionResolved(): boolean</code></a></li>
452
+ <li><a href="#_clearsession_void">3.4. <code>clearSession(): void</code></a></li>
453
+ <li><a href="#_setshowmodalfunctionshowmodal_onconfirm_void_oncancel_void_void_void">3.5. <code>setShowModalFunction(showModal: (onConfirm: () &#8658; void, onCancel: () &#8658; void) &#8658; void): void</code></a></li>
454
+ <li><a href="#_setsessionenabledenabled_boolean_void">3.6. <code>setSessionEnabled(enabled: boolean): void</code></a></li>
455
+ <li><a href="#_setresetfunctionresetfn_void_void">3.7. <code>setResetFunction(resetFn: () &#8658; void): void</code></a></li>
453
456
  </ul>
454
457
  </li>
455
- <li><a href="#_general_usage">3. General Usage</a></li>
458
+ <li><a href="#_general_usage">4. General Usage</a></li>
456
459
  </ul>
457
460
  </div>
458
461
  </div>
459
462
  <div id="content">
460
- <div id="preamble">
463
+ <div class="sect1">
464
+ <h2 id="_architectural_purpose"><a class="link" href="#_architectural_purpose">1. Architectural Purpose</a></h2>
461
465
  <div class="sectionbody">
462
466
  <div class="paragraph">
463
467
  <p>The <code>Session</code> interface defines the core contract for the game&#8217;s session orchestration. It handles restoring persistent <code><a href="../Serializable.html">Serializable</a></code> data (such as progressive scores or active level states) and presenting UI mechanisms to the user when playing an existing session.</p>
@@ -468,7 +472,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
468
472
  </div>
469
473
  </div>
470
474
  <div class="sect1">
471
- <h2 id="_attributes_properties_values"><a class="link" href="#_attributes_properties_values">1. Attributes / Properties / Values</a></h2>
475
+ <h2 id="_attributes_properties_values"><a class="link" href="#_attributes_properties_values">2. Attributes / Properties / Values</a></h2>
472
476
  <div class="sectionbody">
473
477
  <table class="tableblock frame-all grid-all stretch">
474
478
  <colgroup>
@@ -492,11 +496,11 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
492
496
  </div>
493
497
  </div>
494
498
  <div class="sect1">
495
- <h2 id="_api_reference"><a class="link" href="#_api_reference">2. API Reference</a></h2>
499
+ <h2 id="_api_reference"><a class="link" href="#_api_reference">3. API Reference</a></h2>
496
500
  <div class="sectionbody">
497
501
  <hr>
498
502
  <div class="sect2">
499
- <h3 id="_registerserializable_serializable_void"><a class="link" href="#_registerserializable_serializable_void">2.1. <code>register(serializable: Serializable): void</code></a></h3>
503
+ <h3 id="_registerserializable_serializable_void"><a class="link" href="#_registerserializable_serializable_void">3.1. <code>register(serializable: Serializable): void</code></a></h3>
500
504
  <div class="paragraph">
501
505
  <p>Appends a module or instance that implements <code>Serializable</code> to the session&#8217;s watch list.</p>
502
506
  </div>
@@ -525,21 +529,34 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
525
529
  <hr>
526
530
  </div>
527
531
  <div class="sect2">
528
- <h3 id="_savesession_void"><a class="link" href="#_savesession_void">2.2. <code>saveSession(): void</code></a></h3>
532
+ <h3 id="_savesession_void"><a class="link" href="#_savesession_void">3.2. <code>saveSession(): void</code></a></h3>
529
533
  <div class="paragraph">
530
534
  <p>Persists the current state of all registered <code><a href="../Serializable.html">Serializable</a></code> instances to <code>localStorage</code>.</p>
531
535
  </div>
532
536
  <hr>
533
537
  </div>
534
538
  <div class="sect2">
535
- <h3 id="_clearsession_void"><a class="link" href="#_clearsession_void">2.3. <code>clearSession(): void</code></a></h3>
539
+ <h3 id="_issessionresolved_boolean"><a class="link" href="#_issessionresolved_boolean">3.3. <code>isSessionResolved(): boolean</code></a></h3>
540
+ <div class="paragraph">
541
+ <p>Returns <code>true</code> if the session restoration flow (modal interaction or automatic skip) has been completed.</p>
542
+ </div>
543
+ <div class="paragraph">
544
+ <p><strong>Returns</strong></p>
545
+ </div>
546
+ <div class="paragraph">
547
+ <p><code>boolean</code> - Whether the session is resolved.</p>
548
+ </div>
549
+ <hr>
550
+ </div>
551
+ <div class="sect2">
552
+ <h3 id="_clearsession_void"><a class="link" href="#_clearsession_void">3.4. <code>clearSession(): void</code></a></h3>
536
553
  <div class="paragraph">
537
554
  <p>Clears out the active session data from <code>localStorage</code>, functionally resetting the user&#8217;s progress for the given <code>gameId</code>.</p>
538
555
  </div>
539
556
  <hr>
540
557
  </div>
541
558
  <div class="sect2">
542
- <h3 id="_setshowmodalfunctionshowmodal_onconfirm_void_oncancel_void_void_void"><a class="link" href="#_setshowmodalfunctionshowmodal_onconfirm_void_oncancel_void_void_void">2.4. <code>setShowModalFunction(showModal: (onConfirm: () &#8658; void, onCancel: () &#8658; void) &#8658; void): void</code></a></h3>
559
+ <h3 id="_setshowmodalfunctionshowmodal_onconfirm_void_oncancel_void_void_void"><a class="link" href="#_setshowmodalfunctionshowmodal_onconfirm_void_oncancel_void_void_void">3.5. <code>setShowModalFunction(showModal: (onConfirm: () &#8658; void, onCancel: () &#8658; void) &#8658; void): void</code></a></h3>
543
560
  <div class="paragraph">
544
561
  <p>Registers the callback that triggers the session recovery UI element.</p>
545
562
  </div>
@@ -568,7 +585,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
568
585
  <hr>
569
586
  </div>
570
587
  <div class="sect2">
571
- <h3 id="_setsessionenabledenabled_boolean_void"><a class="link" href="#_setsessionenabledenabled_boolean_void">2.5. <code>setSessionEnabled(enabled: boolean): void</code></a></h3>
588
+ <h3 id="_setsessionenabledenabled_boolean_void"><a class="link" href="#_setsessionenabledenabled_boolean_void">3.6. <code>setSessionEnabled(enabled: boolean): void</code></a></h3>
572
589
  <div class="paragraph">
573
590
  <p>Enables or disables the session recovery mechanism for the current game instance.</p>
574
591
  </div>
@@ -594,11 +611,40 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
594
611
  </tr>
595
612
  </tbody>
596
613
  </table>
614
+ <hr>
615
+ </div>
616
+ <div class="sect2">
617
+ <h3 id="_setresetfunctionresetfn_void_void"><a class="link" href="#_setresetfunctionresetfn_void_void">3.7. <code>setResetFunction(resetFn: () &#8658; void): void</code></a></h3>
618
+ <div class="paragraph">
619
+ <p>Registers the callback that resets the game state when a session is canceled or cleared.</p>
620
+ </div>
621
+ <div class="paragraph">
622
+ <p><strong>Parameters</strong></p>
623
+ </div>
624
+ <table class="tableblock frame-all grid-all stretch">
625
+ <colgroup>
626
+ <col style="width: 20%;">
627
+ <col style="width: 20%;">
628
+ <col style="width: 60%;">
629
+ </colgroup>
630
+ <tbody>
631
+ <tr>
632
+ <td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
633
+ <td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
634
+ <td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
635
+ </tr>
636
+ <tr>
637
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>resetFn</code></p></td>
638
+ <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Function</code></p></td>
639
+ <td class="tableblock halign-left valign-top"><p class="tableblock">The callback that performs a full reset of the game modules and instance state.</p></td>
640
+ </tr>
641
+ </tbody>
642
+ </table>
597
643
  </div>
598
644
  </div>
599
645
  </div>
600
646
  <div class="sect1">
601
- <h2 id="_general_usage"><a class="link" href="#_general_usage">3. General Usage</a></h2>
647
+ <h2 id="_general_usage"><a class="link" href="#_general_usage">4. General Usage</a></h2>
602
648
  <div class="sectionbody">
603
649
  <div class="paragraph">
604
650
  <p>The <code>Session</code> module subscribes to the <code>GameState</code> lifecycle. Upon detecting a transition to the <code>PLAYING</code> state, if previous active records exist in <code>localStorage</code>, it invokes the modal logic set via <code>setShowModalFunction</code>. The engine&#8217;s <code>Game</code> orchestrates this by default.</p>
@@ -608,7 +654,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
608
654
  </div>
609
655
  <div id="footer">
610
656
  <div id="footer-text">
611
- Last updated 2026-02-24 23:17:40 -0300
657
+ Last updated 2026-02-27 22:06:44 -0300
612
658
  </div>
613
659
  </div>
614
660
  </body>
@@ -443,42 +443,44 @@ 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="#ison-boolean">1.1. <code>isOn(): boolean</code></a></li>
449
- <li><a href="#isoff-boolean">1.2. <code>isOff(): boolean</code></a></li>
450
- <li><a href="#isstarted-boolean">1.3. <code>isStarted(): boolean</code></a></li>
451
- <li><a href="#isplaying-boolean">1.4. <code>isPlaying(): boolean</code></a></li>
452
- <li><a href="#ispaused-boolean">1.5. <code>isPaused(): boolean</code></a></li>
453
- <li><a href="#isgameover-boolean">1.6. <code>isGameOver(): boolean</code></a></li>
454
- <li><a href="#iscolorenabled-boolean">1.7. <code>isColorEnabled(): boolean</code></a></li>
455
- <li><a href="#setcolorenabledvalue-boolean-void">1.8. <code>setColorEnabled(value: boolean): void</code></a></li>
456
- <li><a href="#ismuted-boolean">1.9. <code>isMuted(): boolean</code></a></li>
457
- <li><a href="#setmutedvalue-boolean-void">1.10. <code>setMuted(value: boolean): void</code></a></li>
458
- <li><a href="#gethighscore-number">1.11. <code>getHighScore(): number</code></a></li>
459
- <li><a href="#sethighscorevalue-number-void">1.12. <code>setHighScore(value: number): void</code></a></li>
460
- <li><a href="#subscribeproperty-stateproperty-callback-value-boolean-number-void-void">1.13. <code>subscribe(property: StateProperty, callback: (value: boolean | number) &#8658; void): void</code></a></li>
461
- <li><a href="#unsubscribeproperty-stateproperty-callback-value-boolean-number-void-void">1.14. <code>unsubscribe(property: StateProperty, callback: (value: boolean | number) &#8658; void): void</code></a></li>
462
- <li><a href="#turnon-void">1.15. <code>turnOn(): void</code></a></li>
463
- <li><a href="#turnoff-void">1.16. <code>turnOff(): void</code></a></li>
464
- <li><a href="#startgame-void">1.17. <code>startGame(): void</code></a></li>
465
- <li><a href="#exitgame-void">1.18. <code>exitGame(): void</code></a></li>
466
- <li><a href="#pause-void">1.19. <code>pause(): void</code></a></li>
467
- <li><a href="#resume-void">1.20. <code>resume(): void</code></a></li>
468
- <li><a href="#triggergameover-void">1.21. <code>triggerGameOver(): void</code></a></li>
469
- <li><a href="#resetgame-void">1.22. <code>resetGame(): void</code></a></li>
470
- <li><a href="#togglecolorenabled-void">1.23. <code>toggleColorEnabled(): void</code></a></li>
471
- <li><a href="#togglemuted-void">1.24. <code>toggleMuted(): void</code></a></li>
472
- <li><a href="#setpersistencekeykey-string-void">1.25. <code>setPersistenceKey(key: string): void</code></a></li>
473
- <li><a href="#getpersistencekey-string">1.26. <code>getPersistenceKey(): string</code></a></li>
449
+ <li><a href="#ison-boolean">2.1. <code>isOn(): boolean</code></a></li>
450
+ <li><a href="#isoff-boolean">2.2. <code>isOff(): boolean</code></a></li>
451
+ <li><a href="#isstarted-boolean">2.3. <code>isStarted(): boolean</code></a></li>
452
+ <li><a href="#isplaying-boolean">2.4. <code>isPlaying(): boolean</code></a></li>
453
+ <li><a href="#ispaused-boolean">2.5. <code>isPaused(): boolean</code></a></li>
454
+ <li><a href="#isgameover-boolean">2.6. <code>isGameOver(): boolean</code></a></li>
455
+ <li><a href="#iscolorenabled-boolean">2.7. <code>isColorEnabled(): boolean</code></a></li>
456
+ <li><a href="#setcolorenabledvalue-boolean-void">2.8. <code>setColorEnabled(value: boolean): void</code></a></li>
457
+ <li><a href="#ismuted-boolean">2.9. <code>isMuted(): boolean</code></a></li>
458
+ <li><a href="#setmutedvalue-boolean-void">2.10. <code>setMuted(value: boolean): void</code></a></li>
459
+ <li><a href="#gethighscore-number">2.11. <code>getHighScore(): number</code></a></li>
460
+ <li><a href="#sethighscorevalue-number-void">2.12. <code>setHighScore(value: number): void</code></a></li>
461
+ <li><a href="#subscribeproperty-stateproperty-callback-value-boolean-number-void-void">2.13. <code>subscribe(property: StateProperty, callback: (value: boolean | number) &#8658; void): void</code></a></li>
462
+ <li><a href="#unsubscribeproperty-stateproperty-callback-value-boolean-number-void-void">2.14. <code>unsubscribe(property: StateProperty, callback: (value: boolean | number) &#8658; void): void</code></a></li>
463
+ <li><a href="#turnon-void">2.15. <code>turnOn(): void</code></a></li>
464
+ <li><a href="#turnoff-void">2.16. <code>turnOff(): void</code></a></li>
465
+ <li><a href="#startgame-void">2.17. <code>startGame(): void</code></a></li>
466
+ <li><a href="#exitgame-void">2.18. <code>exitGame(): void</code></a></li>
467
+ <li><a href="#pause-void">2.19. <code>pause(): void</code></a></li>
468
+ <li><a href="#resume-void">2.20. <code>resume(): void</code></a></li>
469
+ <li><a href="#triggergameover-void">2.21. <code>triggerGameOver(): void</code></a></li>
470
+ <li><a href="#resetgame-void">2.22. <code>resetGame(): void</code></a></li>
471
+ <li><a href="#togglecolorenabled-void">2.23. <code>toggleColorEnabled(): void</code></a></li>
472
+ <li><a href="#togglemuted-void">2.24. <code>toggleMuted(): void</code></a></li>
473
+ <li><a href="#setpersistencekeykey-string-void">2.25. <code>setPersistenceKey(key: string): void</code></a></li>
474
+ <li><a href="#getpersistencekey-string">2.26. <code>getPersistenceKey(): string</code></a></li>
474
475
  </ul>
475
476
  </li>
476
- <li><a href="#general-usage">2. General Usage</a></li>
477
+ <li><a href="#general-usage">3. General Usage</a></li>
477
478
  </ul>
478
479
  </div>
479
480
  </div>
480
481
  <div id="content">
481
- <div id="preamble">
482
+ <div class="sect1">
483
+ <h2 id="architectural-purpose"><a class="link" href="#architectural-purpose">1. Architectural Purpose</a></h2>
482
484
  <div class="sectionbody">
483
485
  <div class="paragraph">
484
486
  <p>Interface for managing global game lifecycle flags, persistence, and preferences.</p>
@@ -486,10 +488,10 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
486
488
  </div>
487
489
  </div>
488
490
  <div class="sect1">
489
- <h2 id="methods"><a class="link" href="#methods">1. Methods</a></h2>
491
+ <h2 id="methods"><a class="link" href="#methods">2. Methods</a></h2>
490
492
  <div class="sectionbody">
491
493
  <div class="sect2">
492
- <h3 id="ison-boolean"><a class="link" href="#ison-boolean">1.1. <code>isOn(): boolean</code></a></h3>
494
+ <h3 id="ison-boolean"><a class="link" href="#ison-boolean">2.1. <code>isOn(): boolean</code></a></h3>
493
495
  <div class="paragraph">
494
496
  <p>Returns <code>true</code> if the engine is "powered on".</p>
495
497
  </div>
@@ -502,7 +504,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
502
504
  <hr>
503
505
  </div>
504
506
  <div class="sect2">
505
- <h3 id="isoff-boolean"><a class="link" href="#isoff-boolean">1.2. <code>isOff(): boolean</code></a></h3>
507
+ <h3 id="isoff-boolean"><a class="link" href="#isoff-boolean">2.2. <code>isOff(): boolean</code></a></h3>
506
508
  <div class="paragraph">
507
509
  <p>Returns <code>true</code> if the engine is "powered off".</p>
508
510
  </div>
@@ -515,7 +517,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
515
517
  <hr>
516
518
  </div>
517
519
  <div class="sect2">
518
- <h3 id="isstarted-boolean"><a class="link" href="#isstarted-boolean">1.3. <code>isStarted(): boolean</code></a></h3>
520
+ <h3 id="isstarted-boolean"><a class="link" href="#isstarted-boolean">2.3. <code>isStarted(): boolean</code></a></h3>
519
521
  <div class="paragraph">
520
522
  <p>Returns <code>true</code> if a game session has been initialized.</p>
521
523
  </div>
@@ -528,7 +530,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
528
530
  <hr>
529
531
  </div>
530
532
  <div class="sect2">
531
- <h3 id="isplaying-boolean"><a class="link" href="#isplaying-boolean">1.4. <code>isPlaying(): boolean</code></a></h3>
533
+ <h3 id="isplaying-boolean"><a class="link" href="#isplaying-boolean">2.4. <code>isPlaying(): boolean</code></a></h3>
532
534
  <div class="paragraph">
533
535
  <p>Returns <code>true</code> if the game is active and logic ticks are flowing.</p>
534
536
  </div>
@@ -541,7 +543,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
541
543
  <hr>
542
544
  </div>
543
545
  <div class="sect2">
544
- <h3 id="ispaused-boolean"><a class="link" href="#ispaused-boolean">1.5. <code>isPaused(): boolean</code></a></h3>
546
+ <h3 id="ispaused-boolean"><a class="link" href="#ispaused-boolean">2.5. <code>isPaused(): boolean</code></a></h3>
545
547
  <div class="paragraph">
546
548
  <p>Returns <code>true</code> if the game is started but currently paused.</p>
547
549
  </div>
@@ -554,7 +556,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
554
556
  <hr>
555
557
  </div>
556
558
  <div class="sect2">
557
- <h3 id="isgameover-boolean"><a class="link" href="#isgameover-boolean">1.6. <code>isGameOver(): boolean</code></a></h3>
559
+ <h3 id="isgameover-boolean"><a class="link" href="#isgameover-boolean">2.6. <code>isGameOver(): boolean</code></a></h3>
558
560
  <div class="paragraph">
559
561
  <p>Returns <code>true</code> if the current session has ended in defeat.</p>
560
562
  </div>
@@ -567,7 +569,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
567
569
  <hr>
568
570
  </div>
569
571
  <div class="sect2">
570
- <h3 id="iscolorenabled-boolean"><a class="link" href="#iscolorenabled-boolean">1.7. <code>isColorEnabled(): boolean</code></a></h3>
572
+ <h3 id="iscolorenabled-boolean"><a class="link" href="#iscolorenabled-boolean">2.7. <code>isColorEnabled(): boolean</code></a></h3>
571
573
  <div class="paragraph">
572
574
  <p>Returns <code>true</code> if themed color rendering is active.</p>
573
575
  </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="setcolorenabledvalue-boolean-void"><a class="link" href="#setcolorenabledvalue-boolean-void">1.8. <code>setColorEnabled(value: boolean): void</code></a></h3>
585
+ <h3 id="setcolorenabledvalue-boolean-void"><a class="link" href="#setcolorenabledvalue-boolean-void">2.8. <code>setColorEnabled(value: boolean): void</code></a></h3>
584
586
  <div class="paragraph">
585
587
  <p>Manually sets the color rendering preference.</p>
586
588
  </div>
@@ -609,7 +611,7 @@ 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="ismuted-boolean"><a class="link" href="#ismuted-boolean">1.9. <code>isMuted(): boolean</code></a></h3>
614
+ <h3 id="ismuted-boolean"><a class="link" href="#ismuted-boolean">2.9. <code>isMuted(): boolean</code></a></h3>
613
615
  <div class="paragraph">
614
616
  <p>Returns <code>true</code> if the audio system is suppressed.</p>
615
617
  </div>
@@ -622,7 +624,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
622
624
  <hr>
623
625
  </div>
624
626
  <div class="sect2">
625
- <h3 id="setmutedvalue-boolean-void"><a class="link" href="#setmutedvalue-boolean-void">1.10. <code>setMuted(value: boolean): void</code></a></h3>
627
+ <h3 id="setmutedvalue-boolean-void"><a class="link" href="#setmutedvalue-boolean-void">2.10. <code>setMuted(value: boolean): void</code></a></h3>
626
628
  <div class="paragraph">
627
629
  <p>Manually sets the audio suppression preference.</p>
628
630
  </div>
@@ -651,7 +653,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
651
653
  <hr>
652
654
  </div>
653
655
  <div class="sect2">
654
- <h3 id="gethighscore-number"><a class="link" href="#gethighscore-number">1.11. <code>getHighScore(): number</code></a></h3>
656
+ <h3 id="gethighscore-number"><a class="link" href="#gethighscore-number">2.11. <code>getHighScore(): number</code></a></h3>
655
657
  <div class="paragraph">
656
658
  <p>Retrieves the persistent high score for the current game.</p>
657
659
  </div>
@@ -664,7 +666,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
664
666
  <hr>
665
667
  </div>
666
668
  <div class="sect2">
667
- <h3 id="sethighscorevalue-number-void"><a class="link" href="#sethighscorevalue-number-void">1.12. <code>setHighScore(value: number): void</code></a></h3>
669
+ <h3 id="sethighscorevalue-number-void"><a class="link" href="#sethighscorevalue-number-void">2.12. <code>setHighScore(value: number): void</code></a></h3>
668
670
  <div class="paragraph">
669
671
  <p>Updates the persistent high score.</p>
670
672
  </div>
@@ -693,7 +695,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
693
695
  <hr>
694
696
  </div>
695
697
  <div class="sect2">
696
- <h3 id="subscribeproperty-stateproperty-callback-value-boolean-number-void-void"><a class="link" href="#subscribeproperty-stateproperty-callback-value-boolean-number-void-void">1.13. <code>subscribe(property: <a href="../../enums/StateProperty.html">StateProperty</a>, callback: (value: boolean | number) &#8658; void): void</code></a></h3>
698
+ <h3 id="subscribeproperty-stateproperty-callback-value-boolean-number-void-void"><a class="link" href="#subscribeproperty-stateproperty-callback-value-boolean-number-void-void">2.13. <code>subscribe(property: <a href="../../enums/StateProperty.html">StateProperty</a>, callback: (value: boolean | number) &#8658; void): void</code></a></h3>
697
699
  <div class="paragraph">
698
700
  <p>Registers a listener for changes to a specific state property.</p>
699
701
  </div>
@@ -727,7 +729,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
727
729
  <hr>
728
730
  </div>
729
731
  <div class="sect2">
730
- <h3 id="unsubscribeproperty-stateproperty-callback-value-boolean-number-void-void"><a class="link" href="#unsubscribeproperty-stateproperty-callback-value-boolean-number-void-void">1.14. <code>unsubscribe(property: <a href="../../enums/StateProperty.html">StateProperty</a>, callback: (value: boolean | number) &#8658; void): void</code></a></h3>
732
+ <h3 id="unsubscribeproperty-stateproperty-callback-value-boolean-number-void-void"><a class="link" href="#unsubscribeproperty-stateproperty-callback-value-boolean-number-void-void">2.14. <code>unsubscribe(property: <a href="../../enums/StateProperty.html">StateProperty</a>, callback: (value: boolean | number) &#8658; void): void</code></a></h3>
731
733
  <div class="paragraph">
732
734
  <p>Removes a previously registered property listener.</p>
733
735
  </div>
@@ -761,77 +763,77 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
761
763
  <hr>
762
764
  </div>
763
765
  <div class="sect2">
764
- <h3 id="turnon-void"><a class="link" href="#turnon-void">1.15. <code>turnOn(): void</code></a></h3>
766
+ <h3 id="turnon-void"><a class="link" href="#turnon-void">2.15. <code>turnOn(): void</code></a></h3>
765
767
  <div class="paragraph">
766
768
  <p>Powers up the engine.</p>
767
769
  </div>
768
770
  <hr>
769
771
  </div>
770
772
  <div class="sect2">
771
- <h3 id="turnoff-void"><a class="link" href="#turnoff-void">1.16. <code>turnOff(): void</code></a></h3>
773
+ <h3 id="turnoff-void"><a class="link" href="#turnoff-void">2.16. <code>turnOff(): void</code></a></h3>
772
774
  <div class="paragraph">
773
775
  <p>Powers down the engine and saves state.</p>
774
776
  </div>
775
777
  <hr>
776
778
  </div>
777
779
  <div class="sect2">
778
- <h3 id="startgame-void"><a class="link" href="#startgame-void">1.17. <code>startGame(): void</code></a></h3>
780
+ <h3 id="startgame-void"><a class="link" href="#startgame-void">2.17. <code>startGame(): void</code></a></h3>
779
781
  <div class="paragraph">
780
782
  <p>Transitions from the menu to an active game session.</p>
781
783
  </div>
782
784
  <hr>
783
785
  </div>
784
786
  <div class="sect2">
785
- <h3 id="exitgame-void"><a class="link" href="#exitgame-void">1.18. <code>exitGame(): void</code></a></h3>
787
+ <h3 id="exitgame-void"><a class="link" href="#exitgame-void">2.18. <code>exitGame(): void</code></a></h3>
786
788
  <div class="paragraph">
787
789
  <p>Ends the current game session and returns to the menu.</p>
788
790
  </div>
789
791
  <hr>
790
792
  </div>
791
793
  <div class="sect2">
792
- <h3 id="pause-void"><a class="link" href="#pause-void">1.19. <code>pause(): void</code></a></h3>
794
+ <h3 id="pause-void"><a class="link" href="#pause-void">2.19. <code>pause(): void</code></a></h3>
793
795
  <div class="paragraph">
794
796
  <p>Toggles the gameplay state to paused.</p>
795
797
  </div>
796
798
  <hr>
797
799
  </div>
798
800
  <div class="sect2">
799
- <h3 id="resume-void"><a class="link" href="#resume-void">1.20. <code>resume(): void</code></a></h3>
801
+ <h3 id="resume-void"><a class="link" href="#resume-void">2.20. <code>resume(): void</code></a></h3>
800
802
  <div class="paragraph">
801
803
  <p>Toggles the gameplay state back to playing.</p>
802
804
  </div>
803
805
  <hr>
804
806
  </div>
805
807
  <div class="sect2">
806
- <h3 id="triggergameover-void"><a class="link" href="#triggergameover-void">1.21. <code>triggerGameOver(): void</code></a></h3>
808
+ <h3 id="triggergameover-void"><a class="link" href="#triggergameover-void">2.21. <code>triggerGameOver(): void</code></a></h3>
807
809
  <div class="paragraph">
808
810
  <p>Transitions to the game over screen.</p>
809
811
  </div>
810
812
  <hr>
811
813
  </div>
812
814
  <div class="sect2">
813
- <h3 id="resetgame-void"><a class="link" href="#resetgame-void">1.22. <code>resetGame(): void</code></a></h3>
815
+ <h3 id="resetgame-void"><a class="link" href="#resetgame-void">2.22. <code>resetGame(): void</code></a></h3>
814
816
  <div class="paragraph">
815
817
  <p>Resets session-specific state (score, grids) while maintaining high score and preferences.</p>
816
818
  </div>
817
819
  <hr>
818
820
  </div>
819
821
  <div class="sect2">
820
- <h3 id="togglecolorenabled-void"><a class="link" href="#togglecolorenabled-void">1.23. <code>toggleColorEnabled(): void</code></a></h3>
822
+ <h3 id="togglecolorenabled-void"><a class="link" href="#togglecolorenabled-void">2.23. <code>toggleColorEnabled(): void</code></a></h3>
821
823
  <div class="paragraph">
822
824
  <p>Flips the current <code>colorEnabled</code> flag.</p>
823
825
  </div>
824
826
  <hr>
825
827
  </div>
826
828
  <div class="sect2">
827
- <h3 id="togglemuted-void"><a class="link" href="#togglemuted-void">1.24. <code>toggleMuted(): void</code></a></h3>
829
+ <h3 id="togglemuted-void"><a class="link" href="#togglemuted-void">2.24. <code>toggleMuted(): void</code></a></h3>
828
830
  <div class="paragraph">
829
831
  <p>Flips the current <code>muted</code> flag.</p>
830
832
  </div>
831
833
  <hr>
832
834
  </div>
833
835
  <div class="sect2">
834
- <h3 id="setpersistencekeykey-string-void"><a class="link" href="#setpersistencekeykey-string-void">1.25. <code>setPersistenceKey(key: string): void</code></a></h3>
836
+ <h3 id="setpersistencekeykey-string-void"><a class="link" href="#setpersistencekeykey-string-void">2.25. <code>setPersistenceKey(key: string): void</code></a></h3>
835
837
  <div class="paragraph">
836
838
  <p>Sets the unique namespace used for <code>localStorage</code>.</p>
837
839
  </div>
@@ -860,7 +862,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
860
862
  <hr>
861
863
  </div>
862
864
  <div class="sect2">
863
- <h3 id="getpersistencekey-string"><a class="link" href="#getpersistencekey-string">1.26. <code>getPersistenceKey(): string</code></a></h3>
865
+ <h3 id="getpersistencekey-string"><a class="link" href="#getpersistencekey-string">2.26. <code>getPersistenceKey(): string</code></a></h3>
864
866
  <div class="paragraph">
865
867
  <p>Returns the active namespace prefix.</p>
866
868
  </div>
@@ -874,7 +876,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
874
876
  </div>
875
877
  </div>
876
878
  <div class="sect1">
877
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
879
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
878
880
  <div class="sectionbody">
879
881
  <div class="paragraph">
880
882
  <p>Implemented by <code><a href="../../modules/GameState.html">GameState</a></code>. It serves as the single source of truth for the engine&#8217;s behavior tree.</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="#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="#settextsizefontsize-fontsize-void">1.1. <code>setTextSize(fontSize: FontSize): void</code></a></li>
449
- <li><a href="#settextalignfontalign-fontalignment-fontverticalalign-fontalignment-void">1.2. <code>setTextAlign(fontAlign: FontAlignment, fontVerticalAlign: FontAlignment): void</code></a></li>
450
- <li><a href="#textonhudtext-string-coordinate-coordinate-void">1.3. <code>textOnHud(text: string, coordinate: Coordinate): void</code></a></li>
451
- <li><a href="#textondisplaytext-string-coordinate-coordinate-void">1.4. <code>textOnDisplay(text: string, coordinate: Coordinate): void</code></a></li>
452
- <li><a href="#setrenderermetricsrenderermetrics-renderermetrics-void">1.5. <code>setRendererMetrics(rendererMetrics: RendererMetrics): void</code></a></li>
453
- <li><a href="#setactivetext-void">1.6. <code>setActiveText(): void</code></a></li>
454
- <li><a href="#setinactivetext-void">1.7. <code>setInactiveText(): void</code></a></li>
449
+ <li><a href="#settextsizefontsize-fontsize-void">2.1. <code>setTextSize(fontSize: FontSize): void</code></a></li>
450
+ <li><a href="#settextalignfontalign-fontalignment-fontverticalalign-fontalignment-void">2.2. <code>setTextAlign(fontAlign: FontAlignment, fontVerticalAlign: FontAlignment): void</code></a></li>
451
+ <li><a href="#textonhudtext-string-coordinate-coordinate-void">2.3. <code>textOnHud(text: string, coordinate: Coordinate): void</code></a></li>
452
+ <li><a href="#textondisplaytext-string-coordinate-coordinate-void">2.4. <code>textOnDisplay(text: string, coordinate: Coordinate): void</code></a></li>
453
+ <li><a href="#setrenderermetricsrenderermetrics-renderermetrics-void">2.5. <code>setRendererMetrics(rendererMetrics: RendererMetrics): void</code></a></li>
454
+ <li><a href="#setactivetext-void">2.6. <code>setActiveText(): void</code></a></li>
455
+ <li><a href="#setinactivetext-void">2.7. <code>setInactiveText(): void</code></a></li>
455
456
  </ul>
456
457
  </li>
457
- <li><a href="#general-usage">2. General Usage</a></li>
458
+ <li><a href="#general-usage">3. 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 drawing pixelated, responsive typography.</p>
@@ -467,10 +469,10 @@ 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="methods"><a class="link" href="#methods">1. Methods</a></h2>
472
+ <h2 id="methods"><a class="link" href="#methods">2. Methods</a></h2>
471
473
  <div class="sectionbody">
472
474
  <div class="sect2">
473
- <h3 id="settextsizefontsize-fontsize-void"><a class="link" href="#settextsizefontsize-fontsize-void">1.1. <code>setTextSize(fontSize: <a href="../../enums/FontSize.html">FontSize</a>): void</code></a></h3>
475
+ <h3 id="settextsizefontsize-fontsize-void"><a class="link" href="#settextsizefontsize-fontsize-void">2.1. <code>setTextSize(fontSize: <a href="../../enums/FontSize.html">FontSize</a>): void</code></a></h3>
474
476
  <div class="paragraph">
475
477
  <p>Sets the scale of the subsequent text operations.</p>
476
478
  </div>
@@ -499,7 +501,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
499
501
  <hr>
500
502
  </div>
501
503
  <div class="sect2">
502
- <h3 id="settextalignfontalign-fontalignment-fontverticalalign-fontalignment-void"><a class="link" href="#settextalignfontalign-fontalignment-fontverticalalign-fontalignment-void">1.2. <code>setTextAlign(fontAlign: <a href="../../enums/FontAlignment.html">FontAlignment</a>, fontVerticalAlign: <a href="../../enums/FontAlignment.html">FontAlignment</a>): void</code></a></h3>
504
+ <h3 id="settextalignfontalign-fontalignment-fontverticalalign-fontalignment-void"><a class="link" href="#settextalignfontalign-fontalignment-fontverticalalign-fontalignment-void">2.2. <code>setTextAlign(fontAlign: <a href="../../enums/FontAlignment.html">FontAlignment</a>, fontVerticalAlign: <a href="../../enums/FontAlignment.html">FontAlignment</a>): void</code></a></h3>
503
505
  <div class="paragraph">
504
506
  <p>Sets both horizontal and vertical anchor points.</p>
505
507
  </div>
@@ -533,7 +535,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
533
535
  <hr>
534
536
  </div>
535
537
  <div class="sect2">
536
- <h3 id="textonhudtext-string-coordinate-coordinate-void"><a class="link" href="#textonhudtext-string-coordinate-coordinate-void">1.3. <code>textOnHud(text: string, coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): void</code></a></h3>
538
+ <h3 id="textonhudtext-string-coordinate-coordinate-void"><a class="link" href="#textonhudtext-string-coordinate-coordinate-void">2.3. <code>textOnHud(text: string, coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): void</code></a></h3>
537
539
  <div class="paragraph">
538
540
  <p>Renders a string within the HUD area at the specified normalized coordinate (0.0 to 1.0 relative to HUD bounds).</p>
539
541
  </div>
@@ -567,7 +569,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
567
569
  <hr>
568
570
  </div>
569
571
  <div class="sect2">
570
- <h3 id="textondisplaytext-string-coordinate-coordinate-void"><a class="link" href="#textondisplaytext-string-coordinate-coordinate-void">1.4. <code>textOnDisplay(text: string, coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): void</code></a></h3>
572
+ <h3 id="textondisplaytext-string-coordinate-coordinate-void"><a class="link" href="#textondisplaytext-string-coordinate-coordinate-void">2.4. <code>textOnDisplay(text: string, coordinate: <a href="../../types/Coordinate.html">Coordinate</a>): void</code></a></h3>
571
573
  <div class="paragraph">
572
574
  <p>Renders a string within the main game area at the specified normalized coordinate (0.0 to 1.0 relative to display bounds).</p>
573
575
  </div>
@@ -601,7 +603,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
601
603
  <hr>
602
604
  </div>
603
605
  <div class="sect2">
604
- <h3 id="setrenderermetricsrenderermetrics-renderermetrics-void"><a class="link" href="#setrenderermetricsrenderermetrics-renderermetrics-void">1.5. <code>setRendererMetrics(rendererMetrics: <a href="../../types/RendererMetrics.html">RendererMetrics</a>): void</code></a></h3>
606
+ <h3 id="setrenderermetricsrenderermetrics-renderermetrics-void"><a class="link" href="#setrenderermetricsrenderermetrics-renderermetrics-void">2.5. <code>setRendererMetrics(rendererMetrics: <a href="../../types/RendererMetrics.html">RendererMetrics</a>): void</code></a></h3>
605
607
  <div class="paragraph">
606
608
  <p>Internal setup method to provide the pixel-to-grid mapping data.</p>
607
609
  </div>
@@ -630,14 +632,14 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
630
632
  <hr>
631
633
  </div>
632
634
  <div class="sect2">
633
- <h3 id="setactivetext-void"><a class="link" href="#setactivetext-void">1.6. <code>setActiveText(): void</code></a></h3>
635
+ <h3 id="setactivetext-void"><a class="link" href="#setactivetext-void">2.6. <code>setActiveText(): void</code></a></h3>
634
636
  <div class="paragraph">
635
637
  <p>Sets the text rendering style to "active" (high contrast).</p>
636
638
  </div>
637
639
  <hr>
638
640
  </div>
639
641
  <div class="sect2">
640
- <h3 id="setinactivetext-void"><a class="link" href="#setinactivetext-void">1.7. <code>setInactiveText(): void</code></a></h3>
642
+ <h3 id="setinactivetext-void"><a class="link" href="#setinactivetext-void">2.7. <code>setInactiveText(): void</code></a></h3>
641
643
  <div class="paragraph">
642
644
  <p>Sets the text rendering style to "inactive" (low contrast, background effect).</p>
643
645
  </div>
@@ -645,7 +647,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
645
647
  </div>
646
648
  </div>
647
649
  <div class="sect1">
648
- <h2 id="general-usage"><a class="link" href="#general-usage">2. General Usage</a></h2>
650
+ <h2 id="general-usage"><a class="link" href="#general-usage">3. General Usage</a></h2>
649
651
  <div class="sectionbody">
650
652
  <div class="paragraph">
651
653
  <p>Implemented by <code><a href="../../modules/GameText.html">GameText</a></code>. Used to display scores, labels, and title screen messages across different engine layers.</p>