brick-engine-js 1.0.1
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.
- package/.env.local.example +2 -0
- package/.github/workflows/publish.yml +73 -0
- package/.prettierignore +2 -0
- package/.prettierrc.json +8 -0
- package/README.adoc +84 -0
- package/dist/8e23286c2fdf41fd795f.svg +32 -0
- package/dist/CNAME +1 -0
- package/dist/app.js +2 -0
- package/dist/app.js.map +1 -0
- package/dist/brick-engine.js +2 -0
- package/dist/brick-engine.js.map +1 -0
- package/dist/config/configs.d.ts +180 -0
- package/dist/config/configs.test.d.ts +1 -0
- package/dist/config/env.d.ts +2 -0
- package/dist/config/env.test.d.ts +1 -0
- package/dist/config/styles.d.ts +0 -0
- package/dist/core/Game.d.ts +107 -0
- package/dist/core/Game.test.d.ts +1 -0
- package/dist/core/InitialStateSnapshot.d.ts +19 -0
- package/dist/core/InitialStateSnapshot.test.d.ts +1 -0
- package/dist/core/helpers/CellHelper.d.ts +13 -0
- package/dist/core/helpers/CellHelper.test.d.ts +1 -0
- package/dist/core/helpers/ControlInputHandlerHelper.d.ts +32 -0
- package/dist/core/helpers/ControlInputHandlerHelper.test.d.ts +1 -0
- package/dist/core/helpers/CoordinateHelper.d.ts +54 -0
- package/dist/core/helpers/CoordinateHelper.test.d.ts +1 -0
- package/dist/core/helpers/InterfaceIdentifierHelper.d.ts +7 -0
- package/dist/core/helpers/InterfaceIdentifierHelper.test.d.ts +1 -0
- package/dist/core/helpers/RelativeValuesHelper.d.ts +23 -0
- package/dist/core/helpers/RelativeValuesHelper.test.d.ts +1 -0
- package/dist/core/module/control/GameControl.d.ts +62 -0
- package/dist/core/module/control/GameControl.test.d.ts +1 -0
- package/dist/core/module/control/GameControlKeyBinding.d.ts +36 -0
- package/dist/core/module/control/GameControlKeyBinding.test.d.ts +1 -0
- package/dist/core/module/grid/GameGrid.d.ts +399 -0
- package/dist/core/module/grid/GameGrid.test.d.ts +1 -0
- package/dist/core/module/grid/GameHudGrid.d.ts +24 -0
- package/dist/core/module/grid/GameHudGrid.test.d.ts +1 -0
- package/dist/core/module/grid/engines/GridAnalysisEngine.d.ts +29 -0
- package/dist/core/module/grid/engines/GridAnalysisEngine.test.d.ts +1 -0
- package/dist/core/module/grid/engines/GridLineEngine.d.ts +56 -0
- package/dist/core/module/grid/engines/GridLineEngine.test.d.ts +1 -0
- package/dist/core/module/grid/engines/GridMovementEngine.d.ts +29 -0
- package/dist/core/module/grid/engines/GridMovementEngine.test.d.ts +1 -0
- package/dist/core/module/grid/engines/GridRegionEngine.d.ts +26 -0
- package/dist/core/module/grid/engines/GridRegionEngine.test.d.ts +1 -0
- package/dist/core/module/grid/engines/GridTransformEngine.d.ts +24 -0
- package/dist/core/module/grid/engines/GridTransformEngine.test.d.ts +1 -0
- package/dist/core/module/renderer/DisplayRenderer.d.ts +51 -0
- package/dist/core/module/renderer/DisplayRenderer.test.d.ts +1 -0
- package/dist/core/module/renderer/GameRenderer.d.ts +59 -0
- package/dist/core/module/renderer/GameRenderer.test.d.ts +1 -0
- package/dist/core/module/renderer/HudRenderer.d.ts +56 -0
- package/dist/core/module/renderer/HudRenderer.test.d.ts +1 -0
- package/dist/core/module/score/GameScore.d.ts +117 -0
- package/dist/core/module/score/GameScore.test.d.ts +1 -0
- package/dist/core/module/session/GameSession.d.ts +20 -0
- package/dist/core/module/session/GameSession.test.d.ts +1 -0
- package/dist/core/module/sound/GameSound.d.ts +85 -0
- package/dist/core/module/sound/GameSound.test.d.ts +1 -0
- package/dist/core/module/state/GameState.d.ts +172 -0
- package/dist/core/module/state/GameState.test.d.ts +1 -0
- package/dist/core/module/text/GameText.d.ts +87 -0
- package/dist/core/module/text/GameText.test.d.ts +1 -0
- package/dist/core/module/time/GameTime.d.ts +76 -0
- package/dist/core/module/time/GameTime.test.d.ts +1 -0
- package/dist/core/types/Interfaces.d.ts +53 -0
- package/dist/core/types/Types.d.ts +114 -0
- package/dist/core/types/enums.d.ts +106 -0
- package/dist/core/types/modules.d.ts +723 -0
- package/dist/css/app.743066d8e4172b0e73f9.css +824 -0
- package/dist/css/app.743066d8e4172b0e73f9.css.map +1 -0
- package/dist/docs/GAME_DEVELOPER_GUIDE.html +727 -0
- package/dist/docs/brick-engine-guide.html +610 -0
- package/dist/docs/diagrams/lifecycle.mmd +19 -0
- package/dist/docs/documentation_style_guide.html +994 -0
- package/dist/docs/getting-started.html +648 -0
- package/dist/docs/images/lifecycle.svg +1 -0
- package/dist/docs/index.html +593 -0
- package/dist/docs/jsdoc_standard.html +656 -0
- package/dist/docs/publishing.html +573 -0
- package/dist/docs/reference/enums/Color.html +533 -0
- package/dist/docs/reference/enums/ControlEventType.html +505 -0
- package/dist/docs/reference/enums/ControlKey.html +529 -0
- package/dist/docs/reference/enums/FontAlignment.html +545 -0
- package/dist/docs/reference/enums/FontSize.html +517 -0
- package/dist/docs/reference/enums/Sound.html +558 -0
- package/dist/docs/reference/enums/StateProperty.html +525 -0
- package/dist/docs/reference/helpers/CellHelper.html +520 -0
- package/dist/docs/reference/helpers/ControlInputHandlerHelper.html +569 -0
- package/dist/docs/reference/helpers/CoordinateHelper.html +703 -0
- package/dist/docs/reference/helpers/RelativeValuesHelper.html +560 -0
- package/dist/docs/reference/interfaces/Debuggable.html +501 -0
- package/dist/docs/reference/interfaces/GameModules.html +544 -0
- package/dist/docs/reference/interfaces/Initializable.html +495 -0
- package/dist/docs/reference/interfaces/RendererInitializable.html +517 -0
- package/dist/docs/reference/interfaces/StateSyncable.html +542 -0
- package/dist/docs/reference/interfaces/modules/Control.html +648 -0
- package/dist/docs/reference/interfaces/modules/Grid.html +1256 -0
- package/dist/docs/reference/interfaces/modules/Renderer.html +522 -0
- package/dist/docs/reference/interfaces/modules/RendererComposite.html +577 -0
- package/dist/docs/reference/interfaces/modules/Score.html +669 -0
- package/dist/docs/reference/interfaces/modules/Session.html +585 -0
- package/dist/docs/reference/interfaces/modules/State.html +897 -0
- package/dist/docs/reference/interfaces/modules/Text.html +668 -0
- package/dist/docs/reference/interfaces/modules/Time.html +684 -0
- package/dist/docs/reference/modules/Debugger.html +579 -0
- package/dist/docs/reference/modules/DisplayRenderer.html +557 -0
- package/dist/docs/reference/modules/Game.html +909 -0
- package/dist/docs/reference/modules/GameControl.html +716 -0
- package/dist/docs/reference/modules/GameGrid.html +1910 -0
- package/dist/docs/reference/modules/GameHudGrid.html +508 -0
- package/dist/docs/reference/modules/GameMenu.html +538 -0
- package/dist/docs/reference/modules/GameRenderer.html +589 -0
- package/dist/docs/reference/modules/GameScore.html +664 -0
- package/dist/docs/reference/modules/GameSession.html +533 -0
- package/dist/docs/reference/modules/GameSound.html +636 -0
- package/dist/docs/reference/modules/GameState.html +922 -0
- package/dist/docs/reference/modules/GameText.html +701 -0
- package/dist/docs/reference/modules/GameTime.html +696 -0
- package/dist/docs/reference/modules/HudRenderer.html +568 -0
- package/dist/docs/reference/modules/InitialStateSnapshot.html +557 -0
- package/dist/docs/reference/modules/SessionModal.html +520 -0
- package/dist/docs/reference/types/Axis.html +505 -0
- package/dist/docs/reference/types/Cell.html +514 -0
- package/dist/docs/reference/types/ControlCallback.html +488 -0
- package/dist/docs/reference/types/Coordinate.html +510 -0
- package/dist/docs/reference/types/GameEntry.html +514 -0
- package/dist/docs/reference/types/GameEvent.html +514 -0
- package/dist/docs/reference/types/Piece.html +506 -0
- package/dist/docs/reference/types/RendererMetrics.html +514 -0
- package/dist/docs/reference/types/Vector.html +509 -0
- package/dist/docs/testing_best_practices.html +770 -0
- package/dist/favicon.ico +0 -0
- package/dist/fonts/digital-7.monoitalic.ttf +0 -0
- package/dist/images/cell.svg +32 -0
- package/dist/images/close.png +0 -0
- package/dist/images/games.png +0 -0
- package/dist/images/github.png +0 -0
- package/dist/images/letter-a.png +0 -0
- package/dist/images/letter-d.png +0 -0
- package/dist/images/letter-j.png +0 -0
- package/dist/images/letter-s.png +0 -0
- package/dist/images/letter-w.png +0 -0
- package/dist/images/meta-image.png +0 -0
- package/dist/images/number-1.png +0 -0
- package/dist/images/number-2.png +0 -0
- package/dist/images/number-3.png +0 -0
- package/dist/images/number-4.png +0 -0
- package/dist/images/number-5.png +0 -0
- package/dist/images/number-6.png +0 -0
- package/dist/images/splash.gif +0 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.html +1 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.test.d.ts +1 -0
- package/dist/menu/GameMenu.d.ts +15 -0
- package/dist/menu/GameMenu.test.d.ts +1 -0
- package/dist/menu/GameMenuSingleton.d.ts +6 -0
- package/dist/menu/GameMenuSingleton.test.d.ts +1 -0
- package/dist/menu/GameRepository.d.ts +7 -0
- package/dist/menu/GameRepository.test.d.ts +1 -0
- package/dist/menu/manager/GameManager.d.ts +6 -0
- package/dist/menu/manager/GameManager.test.d.ts +1 -0
- package/dist/sounds/sound_00.wav +0 -0
- package/dist/sounds/sound_01.wav +0 -0
- package/dist/sounds/sound_02.wav +0 -0
- package/dist/sounds/sound_03.wav +0 -0
- package/dist/sounds/sound_04.wav +0 -0
- package/dist/sounds/sound_05.wav +0 -0
- package/dist/sounds/sound_06.wav +0 -0
- package/dist/sounds/sound_07.wav +0 -0
- package/dist/sounds/sound_08.wav +0 -0
- package/dist/sounds/sound_09.wav +0 -0
- package/dist/sounds/sound_10.wav +0 -0
- package/dist/sounds/sound_11.wav +0 -0
- package/dist/sounds/sound_12.wav +0 -0
- package/dist/sounds/sound_13.wav +0 -0
- package/dist/sounds/sound_14.wav +0 -0
- package/dist/sounds/sound_15.wav +0 -0
- package/dist/types/interfaces.d.ts +5 -0
- package/dist/vendor/p5.min.js +1 -0
- package/dist/view/Debugger.d.ts +12 -0
- package/dist/view/Debugger.test.d.ts +1 -0
- package/dist/view/GameView.d.ts +101 -0
- package/dist/view/GameView.test.d.ts +1 -0
- package/dist/view/SessionModal.d.ts +12 -0
- package/dist/view/SessionModal.test.d.ts +4 -0
- package/dist/view/components/layout/ButtonLayout.d.ts +25 -0
- package/dist/view/components/layout/ButtonLayout.test.d.ts +1 -0
- package/dist/view/components/layout/ContainerLayout.d.ts +23 -0
- package/dist/view/components/layout/ContainerLayout.test.d.ts +1 -0
- package/dist/view/components/layout/FrameLayout.d.ts +11 -0
- package/dist/view/components/layout/FrameLayout.test.d.ts +1 -0
- package/dist/view/components/ui/BigButton.d.ts +13 -0
- package/dist/view/components/ui/BigButton.test.d.ts +1 -0
- package/dist/view/components/ui/Button.d.ts +12 -0
- package/dist/view/components/ui/Button.test.d.ts +1 -0
- package/dist/view/components/ui/Canvas.d.ts +22 -0
- package/dist/view/components/ui/Canvas.test.d.ts +1 -0
- package/dist/view/components/ui/SmallButton.d.ts +13 -0
- package/dist/view/components/ui/SmallButton.test.d.ts +1 -0
- package/dist/view/theme/applyColors.d.ts +10 -0
- package/dist/view/theme/applyColors.test.d.ts +1 -0
- package/dist/view/theme/dimensions.d.ts +13 -0
- package/dist/view/theme/dimensions.test.d.ts +1 -0
- package/docs/GAME_DEVELOPER_GUIDE.adoc +167 -0
- package/docs/brick-engine-guide.adoc +87 -0
- package/docs/diagrams/lifecycle.mmd +19 -0
- package/docs/documentation_style_guide.adoc +210 -0
- package/docs/getting-started.adoc +147 -0
- package/docs/images/lifecycle.svg +1 -0
- package/docs/jsdoc_standard.adoc +109 -0
- package/docs/publishing.adoc +58 -0
- package/docs/reference/enums/Color.adoc +35 -0
- package/docs/reference/enums/ControlEventType.adoc +28 -0
- package/docs/reference/enums/ControlKey.adoc +34 -0
- package/docs/reference/enums/FontAlignment.adoc +43 -0
- package/docs/reference/enums/FontSize.adoc +31 -0
- package/docs/reference/enums/Sound.adoc +42 -0
- package/docs/reference/enums/StateProperty.adoc +33 -0
- package/docs/reference/helpers/CellHelper.adoc +37 -0
- package/docs/reference/helpers/ControlInputHandlerHelper.adoc +57 -0
- package/docs/reference/helpers/CoordinateHelper.adoc +118 -0
- package/docs/reference/helpers/RelativeValuesHelper.adoc +53 -0
- package/docs/reference/interfaces/Debuggable.adoc +29 -0
- package/docs/reference/interfaces/GameModules.adoc +35 -0
- package/docs/reference/interfaces/Initializable.adoc +24 -0
- package/docs/reference/interfaces/RendererInitializable.adoc +33 -0
- package/docs/reference/interfaces/StateSyncable.adoc +41 -0
- package/docs/reference/interfaces/modules/Control.adoc +98 -0
- package/docs/reference/interfaces/modules/Grid.adoc +411 -0
- package/docs/reference/interfaces/modules/Renderer.adoc +34 -0
- package/docs/reference/interfaces/modules/RendererComposite.adoc +57 -0
- package/docs/reference/interfaces/modules/Score.adoc +107 -0
- package/docs/reference/interfaces/modules/Session.adoc +66 -0
- package/docs/reference/interfaces/modules/State.adoc +290 -0
- package/docs/reference/interfaces/modules/Text.adoc +110 -0
- package/docs/reference/interfaces/modules/Time.adoc +119 -0
- package/docs/reference/modules/Debugger.adoc +71 -0
- package/docs/reference/modules/DisplayRenderer.adoc +55 -0
- package/docs/reference/modules/Game.adoc +256 -0
- package/docs/reference/modules/GameControl.adoc +139 -0
- package/docs/reference/modules/GameGrid.adoc +794 -0
- package/docs/reference/modules/GameHudGrid.adoc +38 -0
- package/docs/reference/modules/GameMenu.adoc +39 -0
- package/docs/reference/modules/GameRenderer.adoc +79 -0
- package/docs/reference/modules/GameScore.adoc +138 -0
- package/docs/reference/modules/GameSession.adoc +43 -0
- package/docs/reference/modules/GameSound.adoc +111 -0
- package/docs/reference/modules/GameState.adoc +318 -0
- package/docs/reference/modules/GameText.adoc +139 -0
- package/docs/reference/modules/GameTime.adoc +141 -0
- package/docs/reference/modules/HudRenderer.adoc +56 -0
- package/docs/reference/modules/InitialStateSnapshot.adoc +47 -0
- package/docs/reference/modules/SessionModal.adoc +34 -0
- package/docs/reference/types/Axis.adoc +28 -0
- package/docs/reference/types/Cell.adoc +29 -0
- package/docs/reference/types/ControlCallback.adoc +23 -0
- package/docs/reference/types/Coordinate.adoc +29 -0
- package/docs/reference/types/GameEntry.adoc +29 -0
- package/docs/reference/types/GameEvent.adoc +29 -0
- package/docs/reference/types/Piece.adoc +32 -0
- package/docs/reference/types/RendererMetrics.adoc +29 -0
- package/docs/reference/types/Vector.adoc +28 -0
- package/docs/testing_best_practices.adoc +190 -0
- package/eslint.config.mjs +29 -0
- package/package.json +54 -0
- package/public/CNAME +1 -0
- package/public/docs/GAME_DEVELOPER_GUIDE.html +727 -0
- package/public/docs/brick-engine-guide.html +610 -0
- package/public/docs/diagrams/lifecycle.mmd +19 -0
- package/public/docs/documentation_style_guide.html +994 -0
- package/public/docs/getting-started.html +648 -0
- package/public/docs/images/lifecycle.svg +1 -0
- package/public/docs/index.html +593 -0
- package/public/docs/jsdoc_standard.html +656 -0
- package/public/docs/publishing.html +573 -0
- package/public/docs/reference/enums/Color.html +533 -0
- package/public/docs/reference/enums/ControlEventType.html +505 -0
- package/public/docs/reference/enums/ControlKey.html +529 -0
- package/public/docs/reference/enums/FontAlignment.html +545 -0
- package/public/docs/reference/enums/FontSize.html +517 -0
- package/public/docs/reference/enums/Sound.html +558 -0
- package/public/docs/reference/enums/StateProperty.html +525 -0
- package/public/docs/reference/helpers/CellHelper.html +520 -0
- package/public/docs/reference/helpers/ControlInputHandlerHelper.html +569 -0
- package/public/docs/reference/helpers/CoordinateHelper.html +703 -0
- package/public/docs/reference/helpers/RelativeValuesHelper.html +560 -0
- package/public/docs/reference/interfaces/Debuggable.html +501 -0
- package/public/docs/reference/interfaces/GameModules.html +544 -0
- package/public/docs/reference/interfaces/Initializable.html +495 -0
- package/public/docs/reference/interfaces/RendererInitializable.html +517 -0
- package/public/docs/reference/interfaces/StateSyncable.html +542 -0
- package/public/docs/reference/interfaces/modules/Control.html +648 -0
- package/public/docs/reference/interfaces/modules/Grid.html +1256 -0
- package/public/docs/reference/interfaces/modules/Renderer.html +522 -0
- package/public/docs/reference/interfaces/modules/RendererComposite.html +577 -0
- package/public/docs/reference/interfaces/modules/Score.html +669 -0
- package/public/docs/reference/interfaces/modules/Session.html +585 -0
- package/public/docs/reference/interfaces/modules/State.html +897 -0
- package/public/docs/reference/interfaces/modules/Text.html +668 -0
- package/public/docs/reference/interfaces/modules/Time.html +684 -0
- package/public/docs/reference/modules/Debugger.html +579 -0
- package/public/docs/reference/modules/DisplayRenderer.html +557 -0
- package/public/docs/reference/modules/Game.html +909 -0
- package/public/docs/reference/modules/GameControl.html +716 -0
- package/public/docs/reference/modules/GameGrid.html +1910 -0
- package/public/docs/reference/modules/GameHudGrid.html +508 -0
- package/public/docs/reference/modules/GameMenu.html +538 -0
- package/public/docs/reference/modules/GameRenderer.html +589 -0
- package/public/docs/reference/modules/GameScore.html +664 -0
- package/public/docs/reference/modules/GameSession.html +533 -0
- package/public/docs/reference/modules/GameSound.html +636 -0
- package/public/docs/reference/modules/GameState.html +922 -0
- package/public/docs/reference/modules/GameText.html +701 -0
- package/public/docs/reference/modules/GameTime.html +696 -0
- package/public/docs/reference/modules/HudRenderer.html +568 -0
- package/public/docs/reference/modules/InitialStateSnapshot.html +557 -0
- package/public/docs/reference/modules/SessionModal.html +520 -0
- package/public/docs/reference/types/Axis.html +505 -0
- package/public/docs/reference/types/Cell.html +514 -0
- package/public/docs/reference/types/ControlCallback.html +488 -0
- package/public/docs/reference/types/Coordinate.html +510 -0
- package/public/docs/reference/types/GameEntry.html +514 -0
- package/public/docs/reference/types/GameEvent.html +514 -0
- package/public/docs/reference/types/Piece.html +506 -0
- package/public/docs/reference/types/RendererMetrics.html +514 -0
- package/public/docs/reference/types/Vector.html +509 -0
- package/public/docs/testing_best_practices.html +770 -0
- package/public/favicon.ico +0 -0
- package/public/fonts/digital-7.monoitalic.ttf +0 -0
- package/public/images/cell.svg +32 -0
- package/public/images/close.png +0 -0
- package/public/images/games.png +0 -0
- package/public/images/github.png +0 -0
- package/public/images/letter-a.png +0 -0
- package/public/images/letter-d.png +0 -0
- package/public/images/letter-j.png +0 -0
- package/public/images/letter-s.png +0 -0
- package/public/images/letter-w.png +0 -0
- package/public/images/meta-image.png +0 -0
- package/public/images/number-1.png +0 -0
- package/public/images/number-2.png +0 -0
- package/public/images/number-3.png +0 -0
- package/public/images/number-4.png +0 -0
- package/public/images/number-5.png +0 -0
- package/public/images/number-6.png +0 -0
- package/public/images/splash.gif +0 -0
- package/public/index.html +15 -0
- package/public/sounds/sound_00.wav +0 -0
- package/public/sounds/sound_01.wav +0 -0
- package/public/sounds/sound_02.wav +0 -0
- package/public/sounds/sound_03.wav +0 -0
- package/public/sounds/sound_04.wav +0 -0
- package/public/sounds/sound_05.wav +0 -0
- package/public/sounds/sound_06.wav +0 -0
- package/public/sounds/sound_07.wav +0 -0
- package/public/sounds/sound_08.wav +0 -0
- package/public/sounds/sound_09.wav +0 -0
- package/public/sounds/sound_10.wav +0 -0
- package/public/sounds/sound_11.wav +0 -0
- package/public/sounds/sound_12.wav +0 -0
- package/public/sounds/sound_13.wav +0 -0
- package/public/sounds/sound_14.wav +0 -0
- package/public/sounds/sound_15.wav +0 -0
- package/public/style/body.css +86 -0
- package/public/style/buttons.css +233 -0
- package/public/style/debugger.css +117 -0
- package/public/style/sessionModal.css +155 -0
- package/public/style/sourceCodeAndCommands.css +74 -0
- package/public/style/splash.css +13 -0
- package/public/style/theme.css +137 -0
- package/scripts/generate-diagrams.sh +20 -0
- package/scripts/generate-docs.js +111 -0
- package/src/client-game.d.ts +1 -0
- package/src/config/configs.test.ts +20 -0
- package/src/config/configs.ts +197 -0
- package/src/config/env.test.ts +59 -0
- package/src/config/env.ts +7 -0
- package/src/config/styles.ts +5 -0
- package/src/core/Game.test.ts +167 -0
- package/src/core/Game.ts +307 -0
- package/src/core/InitialStateSnapshot.test.ts +51 -0
- package/src/core/InitialStateSnapshot.ts +46 -0
- package/src/core/helpers/CellHelper.test.ts +33 -0
- package/src/core/helpers/CellHelper.ts +21 -0
- package/src/core/helpers/ControlInputHandlerHelper.test.ts +116 -0
- package/src/core/helpers/ControlInputHandlerHelper.ts +68 -0
- package/src/core/helpers/CoordinateHelper.test.ts +113 -0
- package/src/core/helpers/CoordinateHelper.ts +82 -0
- package/src/core/helpers/InterfaceIdentifierHelper.test.ts +122 -0
- package/src/core/helpers/InterfaceIdentifierHelper.ts +43 -0
- package/src/core/helpers/RelativeValuesHelper.test.ts +47 -0
- package/src/core/helpers/RelativeValuesHelper.ts +29 -0
- package/src/core/module/control/GameControl.test.ts +82 -0
- package/src/core/module/control/GameControl.ts +142 -0
- package/src/core/module/control/GameControlKeyBinding.test.ts +59 -0
- package/src/core/module/control/GameControlKeyBinding.ts +92 -0
- package/src/core/module/grid/GameGrid.test.ts +83 -0
- package/src/core/module/grid/GameGrid.ts +610 -0
- package/src/core/module/grid/GameHudGrid.test.ts +22 -0
- package/src/core/module/grid/GameHudGrid.ts +40 -0
- package/src/core/module/grid/engines/GridAnalysisEngine.test.ts +157 -0
- package/src/core/module/grid/engines/GridAnalysisEngine.ts +124 -0
- package/src/core/module/grid/engines/GridLineEngine.test.ts +132 -0
- package/src/core/module/grid/engines/GridLineEngine.ts +165 -0
- package/src/core/module/grid/engines/GridMovementEngine.test.ts +125 -0
- package/src/core/module/grid/engines/GridMovementEngine.ts +113 -0
- package/src/core/module/grid/engines/GridRegionEngine.test.ts +136 -0
- package/src/core/module/grid/engines/GridRegionEngine.ts +52 -0
- package/src/core/module/grid/engines/GridTransformEngine.test.ts +98 -0
- package/src/core/module/grid/engines/GridTransformEngine.ts +70 -0
- package/src/core/module/renderer/DisplayRenderer.test.ts +86 -0
- package/src/core/module/renderer/DisplayRenderer.ts +152 -0
- package/src/core/module/renderer/GameRenderer.test.ts +103 -0
- package/src/core/module/renderer/GameRenderer.ts +144 -0
- package/src/core/module/renderer/HudRenderer.test.ts +108 -0
- package/src/core/module/renderer/HudRenderer.ts +203 -0
- package/src/core/module/score/GameScore.test.ts +71 -0
- package/src/core/module/score/GameScore.ts +188 -0
- package/src/core/module/session/GameSession.test.ts +176 -0
- package/src/core/module/session/GameSession.ts +103 -0
- package/src/core/module/sound/GameSound.test.ts +117 -0
- package/src/core/module/sound/GameSound.ts +229 -0
- package/src/core/module/state/GameState.test.ts +101 -0
- package/src/core/module/state/GameState.ts +339 -0
- package/src/core/module/text/GameText.test.ts +87 -0
- package/src/core/module/text/GameText.ts +150 -0
- package/src/core/module/time/GameTime.test.ts +86 -0
- package/src/core/module/time/GameTime.ts +144 -0
- package/src/core/types/Interfaces.ts +59 -0
- package/src/core/types/Types.ts +124 -0
- package/src/core/types/enums.ts +113 -0
- package/src/core/types/modules.ts +841 -0
- package/src/index.test.ts +15 -0
- package/src/index.ts +9 -0
- package/src/main.test.ts +137 -0
- package/src/main.ts +77 -0
- package/src/menu/GameMenu.test.ts +157 -0
- package/src/menu/GameMenu.ts +124 -0
- package/src/menu/GameMenuSingleton.test.ts +26 -0
- package/src/menu/GameMenuSingleton.ts +13 -0
- package/src/menu/GameRepository.test.ts +46 -0
- package/src/menu/GameRepository.ts +47 -0
- package/src/menu/manager/GameManager.test.ts +68 -0
- package/src/menu/manager/GameManager.ts +50 -0
- package/src/types/global.d.ts +8 -0
- package/src/types/interfaces.ts +5 -0
- package/src/view/Debugger.test.ts +152 -0
- package/src/view/Debugger.ts +124 -0
- package/src/view/GameView.test.ts +95 -0
- package/src/view/GameView.ts +244 -0
- package/src/view/SessionModal.test.ts +141 -0
- package/src/view/SessionModal.ts +73 -0
- package/src/view/components/layout/ButtonLayout.test.ts +28 -0
- package/src/view/components/layout/ButtonLayout.ts +63 -0
- package/src/view/components/layout/ContainerLayout.test.ts +48 -0
- package/src/view/components/layout/ContainerLayout.ts +50 -0
- package/src/view/components/layout/FrameLayout.test.ts +24 -0
- package/src/view/components/layout/FrameLayout.ts +25 -0
- package/src/view/components/ui/BigButton.test.ts +28 -0
- package/src/view/components/ui/BigButton.ts +31 -0
- package/src/view/components/ui/Button.test.ts +30 -0
- package/src/view/components/ui/Button.ts +30 -0
- package/src/view/components/ui/Canvas.test.ts +32 -0
- package/src/view/components/ui/Canvas.ts +34 -0
- package/src/view/components/ui/SmallButton.test.ts +48 -0
- package/src/view/components/ui/SmallButton.ts +32 -0
- package/src/view/theme/applyColors.test.ts +47 -0
- package/src/view/theme/applyColors.ts +38 -0
- package/src/view/theme/dimensions.test.ts +34 -0
- package/src/view/theme/dimensions.ts +53 -0
- package/tsconfig.json +16 -0
- package/vitest.config.ts +14 -0
- package/webpack.config.js +133 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
= Score Reference
|
|
2
|
+
:description: Interface for tracking session performance, multipliers, and levels.
|
|
3
|
+
:keywords: score, tracking, levels, metrics, multipliers
|
|
4
|
+
:toc: left
|
|
5
|
+
:toclevels: 3
|
|
6
|
+
:sectnums:
|
|
7
|
+
:sectlinks:
|
|
8
|
+
:icons: font
|
|
9
|
+
:source-highlighter: highlight.js
|
|
10
|
+
:reproducible:
|
|
11
|
+
:experimental:
|
|
12
|
+
:idprefix:
|
|
13
|
+
:idseparator: -
|
|
14
|
+
|
|
15
|
+
Interface for tracking session performance, multipliers, and levels.
|
|
16
|
+
|
|
17
|
+
== Properties
|
|
18
|
+
|
|
19
|
+
[cols="1,1,3"]
|
|
20
|
+
|===
|
|
21
|
+
|Name |Type |Description
|
|
22
|
+
|`score` |`number` |The current total score for the session.
|
|
23
|
+
|`multiplier` |`number` |The current points multiplier.
|
|
24
|
+
|`level` |`number` |The current game difficulty level.
|
|
25
|
+
|`maxLevel` |`number` |The maximum level achievable.
|
|
26
|
+
|===
|
|
27
|
+
|
|
28
|
+
== Methods
|
|
29
|
+
|
|
30
|
+
=== `increaseScore(amount: number): void`
|
|
31
|
+
|
|
32
|
+
Adds points to the total, automatically applying any active multipliers.
|
|
33
|
+
|
|
34
|
+
**Parameters**
|
|
35
|
+
|
|
36
|
+
[cols="1,1,3"]
|
|
37
|
+
|===
|
|
38
|
+
|Name |Type |Description
|
|
39
|
+
|`amount` |`number` |The base points to add before multiplier.
|
|
40
|
+
|===
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
'''
|
|
44
|
+
|
|
45
|
+
=== `resetScore(): void`
|
|
46
|
+
|
|
47
|
+
Resets the session score to `0`.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
'''
|
|
51
|
+
|
|
52
|
+
=== `getFormattedScore(digits?: number): string`
|
|
53
|
+
|
|
54
|
+
Returns a string representation of the score padded with leading zeros (defaulting to 6 digits).
|
|
55
|
+
|
|
56
|
+
**Parameters**
|
|
57
|
+
|
|
58
|
+
[cols="1,1,3"]
|
|
59
|
+
|===
|
|
60
|
+
|Name |Type |Description
|
|
61
|
+
|`digits` |`number` |(Optional) The total length of the string. Defaults to 6.
|
|
62
|
+
|===
|
|
63
|
+
|
|
64
|
+
**Returns**
|
|
65
|
+
|
|
66
|
+
`string` - The formatted score (e.g., "001500").
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
'''
|
|
70
|
+
|
|
71
|
+
=== `increaseLevel(amount: number): void`
|
|
72
|
+
|
|
73
|
+
Increments the current game level up to `maxLevel`.
|
|
74
|
+
|
|
75
|
+
**Parameters**
|
|
76
|
+
|
|
77
|
+
[cols="1,1,3"]
|
|
78
|
+
|===
|
|
79
|
+
|Name |Type |Description
|
|
80
|
+
|`amount` |`number` |Levels to increase by.
|
|
81
|
+
|===
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
'''
|
|
85
|
+
|
|
86
|
+
=== `resetLevel(): void`
|
|
87
|
+
|
|
88
|
+
Resets the game difficulty level to its initial value.
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
'''
|
|
92
|
+
|
|
93
|
+
=== `setState(state: xref:State.adoc[State]): void`
|
|
94
|
+
|
|
95
|
+
Internal setup method to link the score module with high-score persistence logic.
|
|
96
|
+
|
|
97
|
+
**Parameters**
|
|
98
|
+
|
|
99
|
+
[cols="1,1,3"]
|
|
100
|
+
|===
|
|
101
|
+
|Name |Type |Description
|
|
102
|
+
|`state` |`xref:State.adoc[State]` |The global state manager.
|
|
103
|
+
|===
|
|
104
|
+
|
|
105
|
+
== General Usage
|
|
106
|
+
|
|
107
|
+
Implemented by `xref:../../modules/GameScore.adoc[GameScore]`. It handles the numeric progression of the game and formats the data for display on the HUD.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
= Session Interface Reference
|
|
2
|
+
:description: Defines the contract for the module responsible for managing game sessions and restoring serializable data.
|
|
3
|
+
:keywords: interface, session, storage, save, serialization
|
|
4
|
+
:toc: left
|
|
5
|
+
:toclevels: 3
|
|
6
|
+
:sectnums:
|
|
7
|
+
:sectlinks:
|
|
8
|
+
:icons: font
|
|
9
|
+
|
|
10
|
+
The `Session` interface defines the core contract for the game's session orchestration. It handles restoring persistent `xref:../Serializable.adoc[Serializable]` data (such as progressive scores or active level states) and presenting UI mechanisms to the user when playing an existing session.
|
|
11
|
+
|
|
12
|
+
This module is a core part of the `xref:GameModules.adoc[GameModules]` composite.
|
|
13
|
+
|
|
14
|
+
== Attributes / Properties / Values
|
|
15
|
+
|
|
16
|
+
[cols="1,1,3"]
|
|
17
|
+
|===
|
|
18
|
+
|Name |Type |Description
|
|
19
|
+
|`gameId` |`string` |The unique identifier of the game, provided by `xref:../../modules/Game.adoc[Game.gameId]`, used to prefix the LocalStorage entries.
|
|
20
|
+
|===
|
|
21
|
+
|
|
22
|
+
== API Reference
|
|
23
|
+
|
|
24
|
+
'''
|
|
25
|
+
|
|
26
|
+
=== `register(serializable: Serializable): void`
|
|
27
|
+
|
|
28
|
+
Appends a module or instance that implements `Serializable` to the session's watch list.
|
|
29
|
+
|
|
30
|
+
**Parameters**
|
|
31
|
+
|
|
32
|
+
[cols="1,1,3"]
|
|
33
|
+
|===
|
|
34
|
+
|Name |Type |Description
|
|
35
|
+
|`serializable` |`xref:../Serializable.adoc[Serializable]` |The instance implementing serialization capability.
|
|
36
|
+
|===
|
|
37
|
+
|
|
38
|
+
'''
|
|
39
|
+
|
|
40
|
+
=== `saveSession(): void`
|
|
41
|
+
|
|
42
|
+
Persists the current state of all registered `xref:../Serializable.adoc[Serializable]` instances to `localStorage`.
|
|
43
|
+
|
|
44
|
+
'''
|
|
45
|
+
|
|
46
|
+
=== `clearSession(): void`
|
|
47
|
+
|
|
48
|
+
Clears out the active session data from `localStorage`, functionally resetting the user's progress for the given `gameId`.
|
|
49
|
+
|
|
50
|
+
'''
|
|
51
|
+
|
|
52
|
+
=== `setShowModalFunction(showModal: (onConfirm: () => void, onCancel: () => void) => void): void`
|
|
53
|
+
|
|
54
|
+
Registers the callback that triggers the session recovery UI element.
|
|
55
|
+
|
|
56
|
+
**Parameters**
|
|
57
|
+
|
|
58
|
+
[cols="1,1,3"]
|
|
59
|
+
|===
|
|
60
|
+
|Name |Type |Description
|
|
61
|
+
|`showModal` |`Function` |The callback that is executed, receiving the internal `onConfirm` and `onCancel` closure functions as arguments.
|
|
62
|
+
|===
|
|
63
|
+
|
|
64
|
+
== General Usage
|
|
65
|
+
|
|
66
|
+
The `Session` module subscribes to the `GameState` lifecycle. Upon detecting a transition to the `PLAYING` state, if previous active records exist in `localStorage`, it invokes the modal logic set via `setShowModalFunction`. The engine's `Game` orchestrates this by default.
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
= State Reference
|
|
2
|
+
:description: Interface for managing global game lifecycle flags, persistence, and preferences.
|
|
3
|
+
:keywords: state, lifecycle, persistence, preferences
|
|
4
|
+
:toc: left
|
|
5
|
+
:toclevels: 3
|
|
6
|
+
:sectnums:
|
|
7
|
+
:sectlinks:
|
|
8
|
+
:icons: font
|
|
9
|
+
:source-highlighter: highlight.js
|
|
10
|
+
:reproducible:
|
|
11
|
+
:experimental:
|
|
12
|
+
:idprefix:
|
|
13
|
+
:idseparator: -
|
|
14
|
+
|
|
15
|
+
Interface for managing global game lifecycle flags, persistence, and preferences.
|
|
16
|
+
|
|
17
|
+
== Methods
|
|
18
|
+
|
|
19
|
+
=== `isOn(): boolean`
|
|
20
|
+
|
|
21
|
+
Returns `true` if the engine is "powered on".
|
|
22
|
+
|
|
23
|
+
**Returns**
|
|
24
|
+
|
|
25
|
+
`boolean` - `true` if on.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
'''
|
|
29
|
+
|
|
30
|
+
=== `isOff(): boolean`
|
|
31
|
+
|
|
32
|
+
Returns `true` if the engine is "powered off".
|
|
33
|
+
|
|
34
|
+
**Returns**
|
|
35
|
+
|
|
36
|
+
`boolean` - `true` if off.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
'''
|
|
40
|
+
|
|
41
|
+
=== `isStarted(): boolean`
|
|
42
|
+
|
|
43
|
+
Returns `true` if a game session has been initialized.
|
|
44
|
+
|
|
45
|
+
**Returns**
|
|
46
|
+
|
|
47
|
+
`boolean` - `true` if started.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
'''
|
|
51
|
+
|
|
52
|
+
=== `isPlaying(): boolean`
|
|
53
|
+
|
|
54
|
+
Returns `true` if the game is active and logic ticks are flowing.
|
|
55
|
+
|
|
56
|
+
**Returns**
|
|
57
|
+
|
|
58
|
+
`boolean` - `true` if playing.
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
'''
|
|
62
|
+
|
|
63
|
+
=== `isPaused(): boolean`
|
|
64
|
+
|
|
65
|
+
Returns `true` if the game is started but currently paused.
|
|
66
|
+
|
|
67
|
+
**Returns**
|
|
68
|
+
|
|
69
|
+
`boolean` - `true` if paused.
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
'''
|
|
73
|
+
|
|
74
|
+
=== `isGameOver(): boolean`
|
|
75
|
+
|
|
76
|
+
Returns `true` if the current session has ended in defeat.
|
|
77
|
+
|
|
78
|
+
**Returns**
|
|
79
|
+
|
|
80
|
+
`boolean` - `true` if game over.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
'''
|
|
84
|
+
|
|
85
|
+
=== `isColorEnabled(): boolean`
|
|
86
|
+
|
|
87
|
+
Returns `true` if themed color rendering is active.
|
|
88
|
+
|
|
89
|
+
**Returns**
|
|
90
|
+
|
|
91
|
+
`boolean` - `true` if color is enabled.
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
'''
|
|
95
|
+
|
|
96
|
+
=== `setColorEnabled(value: boolean): void`
|
|
97
|
+
|
|
98
|
+
Manually sets the color rendering preference.
|
|
99
|
+
|
|
100
|
+
**Parameters**
|
|
101
|
+
|
|
102
|
+
[cols="1,1,3"]
|
|
103
|
+
|===
|
|
104
|
+
|Name |Type |Description
|
|
105
|
+
|`value` |`boolean` |`true` to enable colors, `false` for monochrome/grayscale.
|
|
106
|
+
|===
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
'''
|
|
110
|
+
|
|
111
|
+
=== `isMuted(): boolean`
|
|
112
|
+
|
|
113
|
+
Returns `true` if the audio system is suppressed.
|
|
114
|
+
|
|
115
|
+
**Returns**
|
|
116
|
+
|
|
117
|
+
`boolean` - `true` if muted.
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
'''
|
|
121
|
+
|
|
122
|
+
=== `setMuted(value: boolean): void`
|
|
123
|
+
|
|
124
|
+
Manually sets the audio suppression preference.
|
|
125
|
+
|
|
126
|
+
**Parameters**
|
|
127
|
+
|
|
128
|
+
[cols="1,1,3"]
|
|
129
|
+
|===
|
|
130
|
+
|Name |Type |Description
|
|
131
|
+
|`value` |`boolean` |`true` to mute, `false` to unmute.
|
|
132
|
+
|===
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
'''
|
|
136
|
+
|
|
137
|
+
=== `getHighScore(): number`
|
|
138
|
+
|
|
139
|
+
Retrieves the persistent high score for the current game.
|
|
140
|
+
|
|
141
|
+
**Returns**
|
|
142
|
+
|
|
143
|
+
`number` - The current high score.
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
'''
|
|
147
|
+
|
|
148
|
+
=== `setHighScore(value: number): void`
|
|
149
|
+
|
|
150
|
+
Updates the persistent high score.
|
|
151
|
+
|
|
152
|
+
**Parameters**
|
|
153
|
+
|
|
154
|
+
[cols="1,1,3"]
|
|
155
|
+
|===
|
|
156
|
+
|Name |Type |Description
|
|
157
|
+
|`value` |`number` |The new high score to save.
|
|
158
|
+
|===
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
'''
|
|
162
|
+
|
|
163
|
+
=== `subscribe(property: xref:../../enums/StateProperty.adoc[StateProperty], callback: (value: boolean | number) => void): void`
|
|
164
|
+
|
|
165
|
+
Registers a listener for changes to a specific state property.
|
|
166
|
+
|
|
167
|
+
**Parameters**
|
|
168
|
+
|
|
169
|
+
[cols="1,1,3"]
|
|
170
|
+
|===
|
|
171
|
+
|Name |Type |Description
|
|
172
|
+
|`property` |`xref:../../enums/StateProperty.adoc[StateProperty]` |The property to watch.
|
|
173
|
+
|`callback` |`(value: boolean \| number) => void` |Function called when the property changes.
|
|
174
|
+
|===
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
'''
|
|
178
|
+
|
|
179
|
+
=== `unsubscribe(property: xref:../../enums/StateProperty.adoc[StateProperty], callback: (value: boolean | number) => void): void`
|
|
180
|
+
|
|
181
|
+
Removes a previously registered property listener.
|
|
182
|
+
|
|
183
|
+
**Parameters**
|
|
184
|
+
|
|
185
|
+
[cols="1,1,3"]
|
|
186
|
+
|===
|
|
187
|
+
|Name |Type |Description
|
|
188
|
+
|`property` |`xref:../../enums/StateProperty.adoc[StateProperty]` |The property being watched.
|
|
189
|
+
|`callback` |`(value: boolean \| number) => void` |The function to remove.
|
|
190
|
+
|===
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
'''
|
|
194
|
+
|
|
195
|
+
=== `turnOn(): void`
|
|
196
|
+
|
|
197
|
+
Powers up the engine.
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
'''
|
|
201
|
+
|
|
202
|
+
=== `turnOff(): void`
|
|
203
|
+
|
|
204
|
+
Powers down the engine and saves state.
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
'''
|
|
208
|
+
|
|
209
|
+
=== `startGame(): void`
|
|
210
|
+
|
|
211
|
+
Transitions from the menu to an active game session.
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
'''
|
|
215
|
+
|
|
216
|
+
=== `exitGame(): void`
|
|
217
|
+
|
|
218
|
+
Ends the current game session and returns to the menu.
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
'''
|
|
222
|
+
|
|
223
|
+
=== `pause(): void`
|
|
224
|
+
|
|
225
|
+
Toggles the gameplay state to paused.
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
'''
|
|
229
|
+
|
|
230
|
+
=== `resume(): void`
|
|
231
|
+
|
|
232
|
+
Toggles the gameplay state back to playing.
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
'''
|
|
236
|
+
|
|
237
|
+
=== `triggerGameOver(): void`
|
|
238
|
+
|
|
239
|
+
Transitions to the game over screen.
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
'''
|
|
243
|
+
|
|
244
|
+
=== `resetGame(): void`
|
|
245
|
+
|
|
246
|
+
Resets session-specific state (score, grids) while maintaining high score and preferences.
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
'''
|
|
250
|
+
|
|
251
|
+
=== `toggleColorEnabled(): void`
|
|
252
|
+
|
|
253
|
+
Flips the current `colorEnabled` flag.
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
'''
|
|
257
|
+
|
|
258
|
+
=== `toggleMuted(): void`
|
|
259
|
+
|
|
260
|
+
Flips the current `muted` flag.
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
'''
|
|
264
|
+
|
|
265
|
+
=== `setPersistenceKey(key: string): void`
|
|
266
|
+
|
|
267
|
+
Sets the unique namespace used for `localStorage`.
|
|
268
|
+
|
|
269
|
+
**Parameters**
|
|
270
|
+
|
|
271
|
+
[cols="1,1,3"]
|
|
272
|
+
|===
|
|
273
|
+
|Name |Type |Description
|
|
274
|
+
|`key` |`string` |The unique key prefix.
|
|
275
|
+
|===
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
'''
|
|
279
|
+
|
|
280
|
+
=== `getPersistenceKey(): string`
|
|
281
|
+
|
|
282
|
+
Returns the active namespace prefix.
|
|
283
|
+
|
|
284
|
+
**Returns**
|
|
285
|
+
|
|
286
|
+
`string` - The persistence key.
|
|
287
|
+
|
|
288
|
+
== General Usage
|
|
289
|
+
|
|
290
|
+
Implemented by `xref:../../modules/GameState.adoc[GameState]`. It serves as the single source of truth for the engine's behavior tree.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
= Text Reference
|
|
2
|
+
:description: Interface for drawing pixelated, responsive typography.
|
|
3
|
+
:keywords: text, typography, rendering, display, retro
|
|
4
|
+
:toc: left
|
|
5
|
+
:toclevels: 3
|
|
6
|
+
:sectnums:
|
|
7
|
+
:sectlinks:
|
|
8
|
+
:icons: font
|
|
9
|
+
:source-highlighter: highlight.js
|
|
10
|
+
:reproducible:
|
|
11
|
+
:experimental:
|
|
12
|
+
:idprefix:
|
|
13
|
+
:idseparator: -
|
|
14
|
+
|
|
15
|
+
Interface for drawing pixelated, responsive typography.
|
|
16
|
+
|
|
17
|
+
== Methods
|
|
18
|
+
|
|
19
|
+
=== `setTextSize(fontSize: xref:../../enums/FontSize.adoc[FontSize]): void`
|
|
20
|
+
|
|
21
|
+
Sets the scale of the subsequent text operations.
|
|
22
|
+
|
|
23
|
+
**Parameters**
|
|
24
|
+
|
|
25
|
+
[cols="1,1,3"]
|
|
26
|
+
|===
|
|
27
|
+
|Name |Type |Description
|
|
28
|
+
|`fontSize` |`xref:../../enums/FontSize.adoc[FontSize]` |Enum value for text size (SMALL, MEDIUM, LARGE).
|
|
29
|
+
|===
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
'''
|
|
33
|
+
|
|
34
|
+
=== `setTextAlign(fontAlign: xref:../../enums/FontAlignment.adoc[FontAlignment], fontVerticalAlign: xref:../../enums/FontAlignment.adoc[FontAlignment]): void`
|
|
35
|
+
|
|
36
|
+
Sets both horizontal and vertical anchor points.
|
|
37
|
+
|
|
38
|
+
**Parameters**
|
|
39
|
+
|
|
40
|
+
[cols="1,1,3"]
|
|
41
|
+
|===
|
|
42
|
+
|Name |Type |Description
|
|
43
|
+
|`fontAlign` |`xref:../../enums/FontAlignment.adoc[FontAlignment]` |Horizontal alignment (LEFT, CENTER, RIGHT).
|
|
44
|
+
|`fontVerticalAlign` |`xref:../../enums/FontAlignment.adoc[FontAlignment]` |Vertical alignment (TOP, CENTER, BOTTOM).
|
|
45
|
+
|===
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
'''
|
|
49
|
+
|
|
50
|
+
=== `textOnHud(text: string, coordinate: xref:../../types/Coordinate.adoc[Coordinate]): void`
|
|
51
|
+
|
|
52
|
+
Renders a string within the HUD area at the specified normalized coordinate (0.0 to 1.0 relative to HUD bounds).
|
|
53
|
+
|
|
54
|
+
**Parameters**
|
|
55
|
+
|
|
56
|
+
[cols="1,1,3"]
|
|
57
|
+
|===
|
|
58
|
+
|Name |Type |Description
|
|
59
|
+
|`text` |`string` |The string content to display.
|
|
60
|
+
|`coordinate` |`xref:../../types/Coordinate.adoc[Coordinate]` |Normalized position `{x, y}`.
|
|
61
|
+
|===
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
'''
|
|
65
|
+
|
|
66
|
+
=== `textOnDisplay(text: string, coordinate: xref:../../types/Coordinate.adoc[Coordinate]): void`
|
|
67
|
+
|
|
68
|
+
Renders a string within the main game area at the specified normalized coordinate (0.0 to 1.0 relative to display bounds).
|
|
69
|
+
|
|
70
|
+
**Parameters**
|
|
71
|
+
|
|
72
|
+
[cols="1,1,3"]
|
|
73
|
+
|===
|
|
74
|
+
|Name |Type |Description
|
|
75
|
+
|`text` |`string` |The string content to display.
|
|
76
|
+
|`coordinate` |`xref:../../types/Coordinate.adoc[Coordinate]` |Normalized position `{x, y}`.
|
|
77
|
+
|===
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
'''
|
|
81
|
+
|
|
82
|
+
=== `setRendererMetrics(rendererMetrics: xref:../../types/RendererMetrics.adoc[RendererMetrics]): void`
|
|
83
|
+
|
|
84
|
+
Internal setup method to provide the pixel-to-grid mapping data.
|
|
85
|
+
|
|
86
|
+
**Parameters**
|
|
87
|
+
|
|
88
|
+
[cols="1,1,3"]
|
|
89
|
+
|===
|
|
90
|
+
|Name |Type |Description
|
|
91
|
+
|`rendererMetrics` |`xref:../../types/RendererMetrics.adoc[RendererMetrics]` |The calculated display dimensions.
|
|
92
|
+
|===
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
'''
|
|
96
|
+
|
|
97
|
+
=== `setActiveText(): void`
|
|
98
|
+
|
|
99
|
+
Sets the text rendering style to "active" (high contrast).
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
'''
|
|
103
|
+
|
|
104
|
+
=== `setInactiveText(): void`
|
|
105
|
+
|
|
106
|
+
Sets the text rendering style to "inactive" (low contrast, background effect).
|
|
107
|
+
|
|
108
|
+
== General Usage
|
|
109
|
+
|
|
110
|
+
Implemented by `xref:../../modules/GameText.adoc[GameText]`. Used to display scores, labels, and title screen messages across different engine layers.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
= Time Reference
|
|
2
|
+
:description: Interface for managing the game's logical clock and update frequency.
|
|
3
|
+
:keywords: time, clock, tick, interval, game-loop
|
|
4
|
+
:toc: left
|
|
5
|
+
:toclevels: 3
|
|
6
|
+
:sectnums:
|
|
7
|
+
:sectlinks:
|
|
8
|
+
:icons: font
|
|
9
|
+
:source-highlighter: highlight.js
|
|
10
|
+
:reproducible:
|
|
11
|
+
:experimental:
|
|
12
|
+
:idprefix:
|
|
13
|
+
:idseparator: -
|
|
14
|
+
|
|
15
|
+
Interface for managing the game's logical clock and update frequency.
|
|
16
|
+
|
|
17
|
+
== Properties
|
|
18
|
+
|
|
19
|
+
[cols="1,1,3"]
|
|
20
|
+
|===
|
|
21
|
+
|Name |Type |Description
|
|
22
|
+
|`tickInterval` |`number` |The duration in milliseconds between logic updates.
|
|
23
|
+
|===
|
|
24
|
+
|
|
25
|
+
== Methods
|
|
26
|
+
|
|
27
|
+
=== `update(deltaTime: number): void`
|
|
28
|
+
|
|
29
|
+
Adds elapsed time to the internal accumulator. Called every frame.
|
|
30
|
+
|
|
31
|
+
**Parameters**
|
|
32
|
+
|
|
33
|
+
[cols="1,1,3"]
|
|
34
|
+
|===
|
|
35
|
+
|Name |Type |Description
|
|
36
|
+
|`deltaTime` |`number` |Time in milliseconds since last frame.
|
|
37
|
+
|===
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
'''
|
|
41
|
+
|
|
42
|
+
=== `shouldTick(): boolean`
|
|
43
|
+
|
|
44
|
+
Returns `true` if the accumulator has exceeded the `tickInterval`, indicating a logic update is due.
|
|
45
|
+
|
|
46
|
+
**Returns**
|
|
47
|
+
|
|
48
|
+
`boolean` - `true` if a tick should occur.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
'''
|
|
52
|
+
|
|
53
|
+
=== `reset(): void`
|
|
54
|
+
|
|
55
|
+
Clears the time accumulator. Useful during game restarts.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
'''
|
|
59
|
+
|
|
60
|
+
=== `incrementTickInterval(amount: number): void`
|
|
61
|
+
|
|
62
|
+
Slows down the game by increasing the time between ticks.
|
|
63
|
+
|
|
64
|
+
**Parameters**
|
|
65
|
+
|
|
66
|
+
[cols="1,1,3"]
|
|
67
|
+
|===
|
|
68
|
+
|Name |Type |Description
|
|
69
|
+
|`amount` |`number` |Milliseconds to add to the interval.
|
|
70
|
+
|===
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
'''
|
|
74
|
+
|
|
75
|
+
=== `decrementTickInterval(amount: number): void`
|
|
76
|
+
|
|
77
|
+
Speeds up the game by decreasing the time between ticks.
|
|
78
|
+
|
|
79
|
+
**Parameters**
|
|
80
|
+
|
|
81
|
+
[cols="1,1,3"]
|
|
82
|
+
|===
|
|
83
|
+
|Name |Type |Description
|
|
84
|
+
|`amount` |`number` |Milliseconds to subtract from the interval.
|
|
85
|
+
|===
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
'''
|
|
89
|
+
|
|
90
|
+
=== `setTickInterval(interval: number): void`
|
|
91
|
+
|
|
92
|
+
Sets the tick interval exactly to the specified value.
|
|
93
|
+
|
|
94
|
+
**Parameters**
|
|
95
|
+
|
|
96
|
+
[cols="1,1,3"]
|
|
97
|
+
|===
|
|
98
|
+
|Name |Type |Description
|
|
99
|
+
|`interval` |`number` |The new interval between logic updates (in milliseconds).
|
|
100
|
+
|===
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
'''
|
|
104
|
+
|
|
105
|
+
=== `setMinTickInterval(interval: number): void`
|
|
106
|
+
|
|
107
|
+
Sets the minimum limit for the tick interval, preventing the game from speeding up beyond this point.
|
|
108
|
+
|
|
109
|
+
**Parameters**
|
|
110
|
+
|
|
111
|
+
[cols="1,1,3"]
|
|
112
|
+
|===
|
|
113
|
+
|Name |Type |Description
|
|
114
|
+
|`interval` |`number` |The minimum interval allowed (in milliseconds).
|
|
115
|
+
|===
|
|
116
|
+
|
|
117
|
+
== General Usage
|
|
118
|
+
|
|
119
|
+
Implemented by `xref:../../modules/GameTime.adoc[GameTime]`. This module ensures that game logic (like falling pieces) runs at a consistent speed regardless of the render frame rate.
|