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,1910 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<meta name="generator" content="Asciidoctor 2.0.20">
|
|
8
|
+
<meta name="description" content="Manages the state of a 2D grid for cell manipulation and collision detection.">
|
|
9
|
+
<meta name="keywords" content="grid, cells, logic, collision">
|
|
10
|
+
<title>GameGrid Module Reference</title>
|
|
11
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
|
|
12
|
+
<style>
|
|
13
|
+
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
|
|
14
|
+
/* Uncomment the following line when using as a custom stylesheet */
|
|
15
|
+
/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
|
|
16
|
+
html{font-family:sans-serif;-webkit-text-size-adjust:100%}
|
|
17
|
+
a{background:none}
|
|
18
|
+
a:focus{outline:thin dotted}
|
|
19
|
+
a:active,a:hover{outline:0}
|
|
20
|
+
h1{font-size:2em;margin:.67em 0}
|
|
21
|
+
b,strong{font-weight:bold}
|
|
22
|
+
abbr{font-size:.9em}
|
|
23
|
+
abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
|
|
24
|
+
dfn{font-style:italic}
|
|
25
|
+
hr{height:0}
|
|
26
|
+
mark{background:#ff0;color:#000}
|
|
27
|
+
code,kbd,pre,samp{font-family:monospace;font-size:1em}
|
|
28
|
+
pre{white-space:pre-wrap}
|
|
29
|
+
q{quotes:"\201C" "\201D" "\2018" "\2019"}
|
|
30
|
+
small{font-size:80%}
|
|
31
|
+
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
|
|
32
|
+
sup{top:-.5em}
|
|
33
|
+
sub{bottom:-.25em}
|
|
34
|
+
img{border:0}
|
|
35
|
+
svg:not(:root){overflow:hidden}
|
|
36
|
+
figure{margin:0}
|
|
37
|
+
audio,video{display:inline-block}
|
|
38
|
+
audio:not([controls]){display:none;height:0}
|
|
39
|
+
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
|
|
40
|
+
legend{border:0;padding:0}
|
|
41
|
+
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
|
|
42
|
+
button,input{line-height:normal}
|
|
43
|
+
button,select{text-transform:none}
|
|
44
|
+
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
|
|
45
|
+
button[disabled],html input[disabled]{cursor:default}
|
|
46
|
+
input[type=checkbox],input[type=radio]{padding:0}
|
|
47
|
+
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
|
|
48
|
+
textarea{overflow:auto;vertical-align:top}
|
|
49
|
+
table{border-collapse:collapse;border-spacing:0}
|
|
50
|
+
*,::before,::after{box-sizing:border-box}
|
|
51
|
+
html,body{font-size:100%}
|
|
52
|
+
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
|
|
53
|
+
a:hover{cursor:pointer}
|
|
54
|
+
img,object,embed{max-width:100%;height:auto}
|
|
55
|
+
object,embed{height:100%}
|
|
56
|
+
img{-ms-interpolation-mode:bicubic}
|
|
57
|
+
.left{float:left!important}
|
|
58
|
+
.right{float:right!important}
|
|
59
|
+
.text-left{text-align:left!important}
|
|
60
|
+
.text-right{text-align:right!important}
|
|
61
|
+
.text-center{text-align:center!important}
|
|
62
|
+
.text-justify{text-align:justify!important}
|
|
63
|
+
.hide{display:none}
|
|
64
|
+
img,object,svg{display:inline-block;vertical-align:middle}
|
|
65
|
+
textarea{height:auto;min-height:50px}
|
|
66
|
+
select{width:100%}
|
|
67
|
+
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
|
|
68
|
+
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
|
|
69
|
+
a{color:#2156a5;text-decoration:underline;line-height:inherit}
|
|
70
|
+
a:hover,a:focus{color:#1d4b8f}
|
|
71
|
+
a img{border:0}
|
|
72
|
+
p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
|
|
73
|
+
p aside{font-size:.875em;line-height:1.35;font-style:italic}
|
|
74
|
+
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
|
|
75
|
+
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
|
|
76
|
+
h1{font-size:2.125em}
|
|
77
|
+
h2{font-size:1.6875em}
|
|
78
|
+
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
|
|
79
|
+
h4,h5{font-size:1.125em}
|
|
80
|
+
h6{font-size:1em}
|
|
81
|
+
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
|
|
82
|
+
em,i{font-style:italic;line-height:inherit}
|
|
83
|
+
strong,b{font-weight:bold;line-height:inherit}
|
|
84
|
+
small{font-size:60%;line-height:inherit}
|
|
85
|
+
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
|
|
86
|
+
ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
|
|
87
|
+
ul,ol{margin-left:1.5em}
|
|
88
|
+
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
|
|
89
|
+
ul.circle{list-style-type:circle}
|
|
90
|
+
ul.disc{list-style-type:disc}
|
|
91
|
+
ul.square{list-style-type:square}
|
|
92
|
+
ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
|
|
93
|
+
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
|
|
94
|
+
dl dt{margin-bottom:.3125em;font-weight:bold}
|
|
95
|
+
dl dd{margin-bottom:1.25em}
|
|
96
|
+
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
|
|
97
|
+
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
|
|
98
|
+
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
|
|
99
|
+
h1{font-size:2.75em}
|
|
100
|
+
h2{font-size:2.3125em}
|
|
101
|
+
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
|
|
102
|
+
h4{font-size:1.4375em}}
|
|
103
|
+
table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
|
|
104
|
+
table thead,table tfoot{background:#f7f8f7}
|
|
105
|
+
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
|
|
106
|
+
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
|
|
107
|
+
table tr.even,table tr.alt{background:#f8f8f7}
|
|
108
|
+
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
|
|
109
|
+
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
|
|
110
|
+
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
|
|
111
|
+
.center{margin-left:auto;margin-right:auto}
|
|
112
|
+
.stretch{width:100%}
|
|
113
|
+
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
|
|
114
|
+
.clearfix::after,.float-group::after{clear:both}
|
|
115
|
+
:not(pre).nobreak{word-wrap:normal}
|
|
116
|
+
:not(pre).nowrap{white-space:nowrap}
|
|
117
|
+
:not(pre).pre-wrap{white-space:pre-wrap}
|
|
118
|
+
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
|
|
119
|
+
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
|
|
120
|
+
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
|
|
121
|
+
pre>code{display:block}
|
|
122
|
+
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
|
|
123
|
+
em em{font-style:normal}
|
|
124
|
+
strong strong{font-weight:400}
|
|
125
|
+
.keyseq{color:rgba(51,51,51,.8)}
|
|
126
|
+
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
|
|
127
|
+
.keyseq kbd:first-child{margin-left:0}
|
|
128
|
+
.keyseq kbd:last-child{margin-right:0}
|
|
129
|
+
.menuseq,.menuref{color:#000}
|
|
130
|
+
.menuseq b:not(.caret),.menuref{font-weight:inherit}
|
|
131
|
+
.menuseq{word-spacing:-.02em}
|
|
132
|
+
.menuseq b.caret{font-size:1.25em;line-height:.8}
|
|
133
|
+
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
|
|
134
|
+
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
|
|
135
|
+
b.button::before{content:"[";padding:0 3px 0 2px}
|
|
136
|
+
b.button::after{content:"]";padding:0 2px 0 3px}
|
|
137
|
+
p a>code:hover{color:rgba(0,0,0,.9)}
|
|
138
|
+
#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
|
|
139
|
+
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
|
|
140
|
+
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
|
|
141
|
+
#content{margin-top:1.25em}
|
|
142
|
+
#content::before{content:none}
|
|
143
|
+
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
|
|
144
|
+
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
|
|
145
|
+
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
|
|
146
|
+
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
|
|
147
|
+
#header .details span:first-child{margin-left:-.125em}
|
|
148
|
+
#header .details span.email a{color:rgba(0,0,0,.85)}
|
|
149
|
+
#header .details br{display:none}
|
|
150
|
+
#header .details br+span::before{content:"\00a0\2013\00a0"}
|
|
151
|
+
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
|
|
152
|
+
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
|
|
153
|
+
#header #revnumber{text-transform:capitalize}
|
|
154
|
+
#header #revnumber::after{content:"\00a0"}
|
|
155
|
+
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
|
|
156
|
+
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
|
|
157
|
+
#toc>ul{margin-left:.125em}
|
|
158
|
+
#toc ul.sectlevel0>li>a{font-style:italic}
|
|
159
|
+
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
|
|
160
|
+
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
|
|
161
|
+
#toc li{line-height:1.3334;margin-top:.3334em}
|
|
162
|
+
#toc a{text-decoration:none}
|
|
163
|
+
#toc a:active{text-decoration:underline}
|
|
164
|
+
#toctitle{color:#7a2518;font-size:1.2em}
|
|
165
|
+
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
|
|
166
|
+
body.toc2{padding-left:15em;padding-right:0}
|
|
167
|
+
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
|
|
168
|
+
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
|
|
169
|
+
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
|
|
170
|
+
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
|
|
171
|
+
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
|
|
172
|
+
body.toc2.toc-right{padding-left:0;padding-right:15em}
|
|
173
|
+
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
|
|
174
|
+
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
|
|
175
|
+
#toc.toc2{width:20em}
|
|
176
|
+
#toc.toc2 #toctitle{font-size:1.375em}
|
|
177
|
+
#toc.toc2>ul{font-size:.95em}
|
|
178
|
+
#toc.toc2 ul ul{padding-left:1.25em}
|
|
179
|
+
body.toc2.toc-right{padding-left:0;padding-right:20em}}
|
|
180
|
+
#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
|
|
181
|
+
#content #toc>:first-child{margin-top:0}
|
|
182
|
+
#content #toc>:last-child{margin-bottom:0}
|
|
183
|
+
#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
|
|
184
|
+
#footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
|
|
185
|
+
#content{margin-bottom:.625em}
|
|
186
|
+
.sect1{padding-bottom:.625em}
|
|
187
|
+
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
|
|
188
|
+
.sect1{padding-bottom:1.25em}}
|
|
189
|
+
.sect1:last-child{padding-bottom:0}
|
|
190
|
+
.sect1+.sect1{border-top:1px solid #e7e7e9}
|
|
191
|
+
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
|
|
192
|
+
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
|
|
193
|
+
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
|
|
194
|
+
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
|
|
195
|
+
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
|
|
196
|
+
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
|
|
197
|
+
details{margin-left:1.25rem}
|
|
198
|
+
details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;outline:none;-webkit-tap-highlight-color:transparent}
|
|
199
|
+
details>summary::-webkit-details-marker{display:none}
|
|
200
|
+
details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
|
|
201
|
+
details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
|
|
202
|
+
details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
|
|
203
|
+
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
|
|
204
|
+
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
|
|
205
|
+
.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
|
|
206
|
+
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
|
|
207
|
+
.admonitionblock>table td.icon{text-align:center;width:80px}
|
|
208
|
+
.admonitionblock>table td.icon img{max-width:none}
|
|
209
|
+
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
|
|
210
|
+
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
|
|
211
|
+
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
|
|
212
|
+
.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
|
|
213
|
+
.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
|
|
214
|
+
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
|
|
215
|
+
.exampleblock>.content>:first-child,.sidebarblock>.content>:first-child{margin-top:0}
|
|
216
|
+
.exampleblock>.content>:last-child,.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
|
|
217
|
+
.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
|
|
218
|
+
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
|
|
219
|
+
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
|
|
220
|
+
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
|
|
221
|
+
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
|
|
222
|
+
.listingblock>.content{position:relative}
|
|
223
|
+
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
|
|
224
|
+
.listingblock:hover code[data-lang]::before{display:block}
|
|
225
|
+
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
|
|
226
|
+
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
|
|
227
|
+
.listingblock pre.highlightjs{padding:0}
|
|
228
|
+
.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
|
|
229
|
+
.listingblock pre.prettyprint{border-width:0}
|
|
230
|
+
.prettyprint{background:#f7f7f8}
|
|
231
|
+
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
|
|
232
|
+
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
|
|
233
|
+
pre.prettyprint li code[data-lang]::before{opacity:1}
|
|
234
|
+
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
|
|
235
|
+
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
|
|
236
|
+
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
|
|
237
|
+
table.linenotable td.code{padding-left:.75em}
|
|
238
|
+
table.linenotable td.linenos,pre.pygments .linenos{border-right:1px solid;opacity:.35;padding-right:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
|
|
239
|
+
pre.pygments span.linenos{display:inline-block;margin-right:.75em}
|
|
240
|
+
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
|
|
241
|
+
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
|
|
242
|
+
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
|
|
243
|
+
.quoteblock blockquote{margin:0;padding:0;border:0}
|
|
244
|
+
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
|
|
245
|
+
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
|
|
246
|
+
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
|
|
247
|
+
.verseblock{margin:0 1em 1.25em}
|
|
248
|
+
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
|
|
249
|
+
.verseblock pre strong{font-weight:400}
|
|
250
|
+
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
|
|
251
|
+
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
|
|
252
|
+
.quoteblock .attribution br,.verseblock .attribution br{display:none}
|
|
253
|
+
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
|
|
254
|
+
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
|
|
255
|
+
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
|
|
256
|
+
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
|
|
257
|
+
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
|
|
258
|
+
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
|
|
259
|
+
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
|
|
260
|
+
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
|
|
261
|
+
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
|
|
262
|
+
p.tableblock:last-child{margin-bottom:0}
|
|
263
|
+
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
|
|
264
|
+
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
|
|
265
|
+
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
|
|
266
|
+
table.grid-all>*>tr>*{border-width:1px}
|
|
267
|
+
table.grid-cols>*>tr>*{border-width:0 1px}
|
|
268
|
+
table.grid-rows>*>tr>*{border-width:1px 0}
|
|
269
|
+
table.frame-all{border-width:1px}
|
|
270
|
+
table.frame-ends{border-width:1px 0}
|
|
271
|
+
table.frame-sides{border-width:0 1px}
|
|
272
|
+
table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
|
|
273
|
+
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
|
|
274
|
+
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
|
|
275
|
+
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
|
|
276
|
+
table.stripes-all>*>tr,table.stripes-odd>*>tr:nth-of-type(odd),table.stripes-even>*>tr:nth-of-type(even),table.stripes-hover>*>tr:hover{background:#f8f8f7}
|
|
277
|
+
th.halign-left,td.halign-left{text-align:left}
|
|
278
|
+
th.halign-right,td.halign-right{text-align:right}
|
|
279
|
+
th.halign-center,td.halign-center{text-align:center}
|
|
280
|
+
th.valign-top,td.valign-top{vertical-align:top}
|
|
281
|
+
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
|
|
282
|
+
th.valign-middle,td.valign-middle{vertical-align:middle}
|
|
283
|
+
table thead th,table tfoot th{font-weight:bold}
|
|
284
|
+
tbody tr th{background:#f7f8f7}
|
|
285
|
+
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
|
|
286
|
+
p.tableblock>code:only-child{background:none;padding:0}
|
|
287
|
+
p.tableblock{font-size:1em}
|
|
288
|
+
ol{margin-left:1.75em}
|
|
289
|
+
ul li ol{margin-left:1.5em}
|
|
290
|
+
dl dd{margin-left:1.125em}
|
|
291
|
+
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
|
|
292
|
+
li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
|
|
293
|
+
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
|
|
294
|
+
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
|
|
295
|
+
ul.unstyled,ol.unstyled{margin-left:0}
|
|
296
|
+
li>p:empty:only-child::before{content:"";display:inline-block}
|
|
297
|
+
ul.checklist>li>p:first-child{margin-left:-1em}
|
|
298
|
+
ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
|
|
299
|
+
ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
|
|
300
|
+
ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
|
|
301
|
+
ul.inline>li{margin-left:1.25em}
|
|
302
|
+
.unstyled dl dt{font-weight:400;font-style:normal}
|
|
303
|
+
ol.arabic{list-style-type:decimal}
|
|
304
|
+
ol.decimal{list-style-type:decimal-leading-zero}
|
|
305
|
+
ol.loweralpha{list-style-type:lower-alpha}
|
|
306
|
+
ol.upperalpha{list-style-type:upper-alpha}
|
|
307
|
+
ol.lowerroman{list-style-type:lower-roman}
|
|
308
|
+
ol.upperroman{list-style-type:upper-roman}
|
|
309
|
+
ol.lowergreek{list-style-type:lower-greek}
|
|
310
|
+
.hdlist>table,.colist>table{border:0;background:none}
|
|
311
|
+
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
|
|
312
|
+
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
|
|
313
|
+
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
|
|
314
|
+
td.hdlist2{word-wrap:anywhere}
|
|
315
|
+
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
|
|
316
|
+
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
|
|
317
|
+
.colist td:not([class]):first-child img{max-width:none}
|
|
318
|
+
.colist td:not([class]):last-child{padding:.25em 0}
|
|
319
|
+
.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
|
|
320
|
+
.imageblock.left{margin:.25em .625em 1.25em 0}
|
|
321
|
+
.imageblock.right{margin:.25em 0 1.25em .625em}
|
|
322
|
+
.imageblock>.title{margin-bottom:0}
|
|
323
|
+
.imageblock.thumb,.imageblock.th{border-width:6px}
|
|
324
|
+
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
|
|
325
|
+
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
|
|
326
|
+
.image.left{margin-right:.625em}
|
|
327
|
+
.image.right{margin-left:.625em}
|
|
328
|
+
a.image{text-decoration:none;display:inline-block}
|
|
329
|
+
a.image object{pointer-events:none}
|
|
330
|
+
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
|
|
331
|
+
sup.footnote a,sup.footnoteref a{text-decoration:none}
|
|
332
|
+
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
|
|
333
|
+
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
|
|
334
|
+
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
|
|
335
|
+
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
|
|
336
|
+
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
|
|
337
|
+
#footnotes .footnote:last-of-type{margin-bottom:0}
|
|
338
|
+
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
|
|
339
|
+
div.unbreakable{page-break-inside:avoid}
|
|
340
|
+
.big{font-size:larger}
|
|
341
|
+
.small{font-size:smaller}
|
|
342
|
+
.underline{text-decoration:underline}
|
|
343
|
+
.overline{text-decoration:overline}
|
|
344
|
+
.line-through{text-decoration:line-through}
|
|
345
|
+
.aqua{color:#00bfbf}
|
|
346
|
+
.aqua-background{background:#00fafa}
|
|
347
|
+
.black{color:#000}
|
|
348
|
+
.black-background{background:#000}
|
|
349
|
+
.blue{color:#0000bf}
|
|
350
|
+
.blue-background{background:#0000fa}
|
|
351
|
+
.fuchsia{color:#bf00bf}
|
|
352
|
+
.fuchsia-background{background:#fa00fa}
|
|
353
|
+
.gray{color:#606060}
|
|
354
|
+
.gray-background{background:#7d7d7d}
|
|
355
|
+
.green{color:#006000}
|
|
356
|
+
.green-background{background:#007d00}
|
|
357
|
+
.lime{color:#00bf00}
|
|
358
|
+
.lime-background{background:#00fa00}
|
|
359
|
+
.maroon{color:#600000}
|
|
360
|
+
.maroon-background{background:#7d0000}
|
|
361
|
+
.navy{color:#000060}
|
|
362
|
+
.navy-background{background:#00007d}
|
|
363
|
+
.olive{color:#606000}
|
|
364
|
+
.olive-background{background:#7d7d00}
|
|
365
|
+
.purple{color:#600060}
|
|
366
|
+
.purple-background{background:#7d007d}
|
|
367
|
+
.red{color:#bf0000}
|
|
368
|
+
.red-background{background:#fa0000}
|
|
369
|
+
.silver{color:#909090}
|
|
370
|
+
.silver-background{background:#bcbcbc}
|
|
371
|
+
.teal{color:#006060}
|
|
372
|
+
.teal-background{background:#007d7d}
|
|
373
|
+
.white{color:#bfbfbf}
|
|
374
|
+
.white-background{background:#fafafa}
|
|
375
|
+
.yellow{color:#bfbf00}
|
|
376
|
+
.yellow-background{background:#fafa00}
|
|
377
|
+
span.icon>.fa{cursor:default}
|
|
378
|
+
a span.icon>.fa{cursor:inherit}
|
|
379
|
+
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
|
|
380
|
+
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
|
|
381
|
+
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
|
|
382
|
+
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
|
|
383
|
+
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
|
|
384
|
+
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
|
|
385
|
+
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
|
|
386
|
+
.conum[data-value] *{color:#fff!important}
|
|
387
|
+
.conum[data-value]+b{display:none}
|
|
388
|
+
.conum[data-value]::after{content:attr(data-value)}
|
|
389
|
+
pre .conum[data-value]{position:relative;top:-.125em}
|
|
390
|
+
b.conum *{color:inherit!important}
|
|
391
|
+
.conum:not([data-value]):empty{display:none}
|
|
392
|
+
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
|
|
393
|
+
h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
|
|
394
|
+
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
|
|
395
|
+
p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:1.0625rem}
|
|
396
|
+
p{margin-bottom:1.25rem}
|
|
397
|
+
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
|
|
398
|
+
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
|
|
399
|
+
.print-only{display:none!important}
|
|
400
|
+
@page{margin:1.25cm .75cm}
|
|
401
|
+
@media print{*{box-shadow:none!important;text-shadow:none!important}
|
|
402
|
+
html{font-size:80%}
|
|
403
|
+
a{color:inherit!important;text-decoration:underline!important}
|
|
404
|
+
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
|
|
405
|
+
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
|
|
406
|
+
abbr[title]{border-bottom:1px dotted}
|
|
407
|
+
abbr[title]::after{content:" (" attr(title) ")"}
|
|
408
|
+
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
|
|
409
|
+
thead{display:table-header-group}
|
|
410
|
+
svg{max-width:100%}
|
|
411
|
+
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
|
|
412
|
+
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
|
|
413
|
+
#header,#content,#footnotes,#footer{max-width:none}
|
|
414
|
+
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
|
|
415
|
+
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
|
|
416
|
+
body.book #header{text-align:center}
|
|
417
|
+
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
|
|
418
|
+
body.book #header .details{border:0!important;display:block;padding:0!important}
|
|
419
|
+
body.book #header .details span:first-child{margin-left:0!important}
|
|
420
|
+
body.book #header .details br{display:block}
|
|
421
|
+
body.book #header .details br+span::before{content:none!important}
|
|
422
|
+
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
|
|
423
|
+
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
|
|
424
|
+
.listingblock code[data-lang]::before{display:block}
|
|
425
|
+
#footer{padding:0 .9375em}
|
|
426
|
+
.hide-on-print{display:none!important}
|
|
427
|
+
.print-only{display:block!important}
|
|
428
|
+
.hide-for-print{display:none!important}
|
|
429
|
+
.show-for-print{display:inherit!important}}
|
|
430
|
+
@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
|
|
431
|
+
.sect1{padding:0!important}
|
|
432
|
+
.sect1+.sect1{border:0}
|
|
433
|
+
#footer{background:none}
|
|
434
|
+
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
|
|
435
|
+
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
|
|
436
|
+
</style>
|
|
437
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
|
438
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.3/styles/github.min.css">
|
|
439
|
+
</head>
|
|
440
|
+
<body class="article toc2 toc-left">
|
|
441
|
+
<div id="header">
|
|
442
|
+
<h1>GameGrid Module Reference</h1>
|
|
443
|
+
<div id="toc" class="toc2">
|
|
444
|
+
<div id="toctitle">Table of Contents</div>
|
|
445
|
+
<ul class="sectlevel1">
|
|
446
|
+
<li><a href="#specialized-instances">1. Specialized Instances</a></li>
|
|
447
|
+
<li><a href="#api-reference">2. API Reference</a>
|
|
448
|
+
<ul class="sectlevel2">
|
|
449
|
+
<li><a href="#core-utilities">2.1. Core & Utilities</a>
|
|
450
|
+
<ul class="sectlevel3">
|
|
451
|
+
<li><a href="#width-number">2.1.1. <code>width: number</code></a></li>
|
|
452
|
+
<li><a href="#height-number">2.1.2. <code>height: number</code></a></li>
|
|
453
|
+
<li><a href="#resetgrid-void">2.1.3. <code>resetGrid(): void</code></a></li>
|
|
454
|
+
<li><a href="#getgrid-cell">2.1.4. <code>getGrid(): Cell[][]</code></a></li>
|
|
455
|
+
<li><a href="#foreachcallback-cell-cell-void-void">2.1.5. <code>forEach(callback: (cell: Cell) ⇒ void): void</code></a></li>
|
|
456
|
+
<li><a href="#isvalidcoordinatecoordinate-coordinate-boolean">2.1.6. <code>isValidCoordinate(coordinate: Coordinate): boolean</code></a></li>
|
|
457
|
+
<li><a href="#getcellcoordinate-coordinate-cell-null">2.1.7. <code>getCell(coordinate: Coordinate): Cell | null</code></a></li>
|
|
458
|
+
<li><a href="#setcellvaluecoordinate-coordinate-value-number-void">2.1.8. <code>setCellValue(coordinate: Coordinate, value: number): void</code></a></li>
|
|
459
|
+
<li><a href="#setcellcolorcoordinate-coordinate-color-color-void">2.1.9. <code>setCellColor(coordinate: Coordinate, color: Color): void</code></a></li>
|
|
460
|
+
<li><a href="#iscellactivecoordinate-coordinate-boolean">2.1.10. <code>isCellActive(coordinate: Coordinate): boolean</code></a></li>
|
|
461
|
+
<li><a href="#iscellinactivecoordinate-coordinate-boolean">2.1.11. <code>isCellInactive(coordinate: Coordinate): boolean</code></a></li>
|
|
462
|
+
<li><a href="#getdebugdata-recordstring-string-number-boolean">2.1.12. <code>getDebugData(): Record<string, string | number | boolean></code></a></li>
|
|
463
|
+
</ul>
|
|
464
|
+
</li>
|
|
465
|
+
<li><a href="#line-column-management">2.2. Line & Column Management</a>
|
|
466
|
+
<ul class="sectlevel3">
|
|
467
|
+
<li><a href="#isrowfully-number-boolean">2.2.1. <code>isRowFull(y: number): boolean</code></a></li>
|
|
468
|
+
<li><a href="#isrowemptyy-number-boolean">2.2.2. <code>isRowEmpty(y: number): boolean</code></a></li>
|
|
469
|
+
<li><a href="#clearrowy-number-void">2.2.3. <code>clearRow(y: number): void</code></a></li>
|
|
470
|
+
<li><a href="#shiftrowsdownfromy-number-void">2.2.4. <code>shiftRowsDown(fromY: number): void</code></a></li>
|
|
471
|
+
<li><a href="#shiftrowsupfromy-number-void">2.2.5. <code>shiftRowsUp(fromY: number): void</code></a></li>
|
|
472
|
+
<li><a href="#clearfullrows-number">2.2.6. <code>clearFullRows(): number</code></a></li>
|
|
473
|
+
<li><a href="#iscolumnfullx-number-boolean">2.2.7. <code>isColumnFull(x: number): boolean</code></a></li>
|
|
474
|
+
<li><a href="#iscolumnemptyx-number-boolean">2.2.8. <code>isColumnEmpty(x: number): boolean</code></a></li>
|
|
475
|
+
<li><a href="#clearcolumnx-number-void">2.2.9. <code>clearColumn(x: number): void</code></a></li>
|
|
476
|
+
<li><a href="#shiftcolumnsrightfromx-number-void">2.2.10. <code>shiftColumnsRight(fromX: number): void</code></a></li>
|
|
477
|
+
<li><a href="#shiftcolumnsleftfromx-number-void">2.2.11. <code>shiftColumnsLeft(fromX: number): void</code></a></li>
|
|
478
|
+
<li><a href="#clearfullcolumns-number">2.2.12. <code>clearFullColumns(): number</code></a></li>
|
|
479
|
+
</ul>
|
|
480
|
+
</li>
|
|
481
|
+
<li><a href="#region-area-management">2.3. Region & Area Management</a>
|
|
482
|
+
<ul class="sectlevel3">
|
|
483
|
+
<li><a href="#isareaoccupiedcoordinates-coordinate-boolean">2.3.1. <code>isAreaOccupied(coordinates: Coordinate[]): boolean</code></a></li>
|
|
484
|
+
<li><a href="#fillareastart-coordinate-end-coordinate-value-number-color-color-void">2.3.2. <code>fillArea(start: Coordinate, end: Coordinate, value: number, color: Color): void</code></a></li>
|
|
485
|
+
<li><a href="#stamppiecepiece-piece-void">2.3.3. <code>stampPiece(piece: Piece): void</code></a></li>
|
|
486
|
+
<li><a href="#stampcellcell-cell-void">2.3.4. <code>stampCell(cell: Cell): void</code></a></li>
|
|
487
|
+
</ul>
|
|
488
|
+
</li>
|
|
489
|
+
<li><a href="#movement-projections">2.4. Movement & Projections</a>
|
|
490
|
+
<ul class="sectlevel3">
|
|
491
|
+
<li><a href="#movepiecepiece-piece-direction-vector-piece-null">2.4.1. <code>movePiece(piece: Piece, direction: Vector): Piece | null</code></a></li>
|
|
492
|
+
<li><a href="#movepieceleftpiece-piece-piece-null">2.4.2. <code>movePieceLeft(piece: Piece): Piece | null</code></a></li>
|
|
493
|
+
<li><a href="#movepiecerightpiece-piece-piece-null">2.4.3. <code>movePieceRight(piece: Piece): Piece | null</code></a></li>
|
|
494
|
+
<li><a href="#movepieceuppiece-piece-piece-null">2.4.4. <code>movePieceUp(piece: Piece): Piece | null</code></a></li>
|
|
495
|
+
<li><a href="#movepiecedownpiece-piece-piece-null">2.4.5. <code>movePieceDown(piece: Piece): Piece | null</code></a></li>
|
|
496
|
+
<li><a href="#movecellcell-cell-direction-vector-cell-null">2.4.6. <code>moveCell(cell: Cell, direction: Vector): Cell | null</code></a></li>
|
|
497
|
+
<li><a href="#movecellleftcell-cell-cell-null">2.4.7. <code>moveCellLeft(cell: Cell): Cell | null</code></a></li>
|
|
498
|
+
<li><a href="#movecellrightcell-cell-cell-null">2.4.8. <code>moveCellRight(cell: Cell): Cell | null</code></a></li>
|
|
499
|
+
<li><a href="#movecellupcell-cell-cell-null">2.4.9. <code>moveCellUp(cell: Cell): Cell | null</code></a></li>
|
|
500
|
+
<li><a href="#movecelldowncell-cell-cell-null">2.4.10. <code>moveCellDown(cell: Cell): Cell | null</code></a></li>
|
|
501
|
+
<li><a href="#getdroppathpiece-piece-piece">2.4.11. <code>getDropPath(piece: Piece): Piece</code></a></li>
|
|
502
|
+
<li><a href="#getrisepathpiece-piece-piece">2.4.12. <code>getRisePath(piece: Piece): Piece</code></a></li>
|
|
503
|
+
<li><a href="#getreachpathleftpiece-piece-piece">2.4.13. <code>getReachPathLeft(piece: Piece): Piece</code></a></li>
|
|
504
|
+
<li><a href="#getreachpathrightpiece-piece-piece">2.4.14. <code>getReachPathRight(piece: Piece): Piece</code></a></li>
|
|
505
|
+
</ul>
|
|
506
|
+
</li>
|
|
507
|
+
<li><a href="#transformations">2.5. Transformations</a>
|
|
508
|
+
<ul class="sectlevel3">
|
|
509
|
+
<li><a href="#rotatepiecepiece-piece-origin-coordinate-clockwise-boolean-true-piece-null">2.5.1. <code>rotatePiece(piece: Piece, origin: Coordinate, clockwise: boolean = true): Piece | null</code></a></li>
|
|
510
|
+
<li><a href="#mirrorpiecepiece-piece-axis-axis-piece">2.5.2. <code>mirrorPiece(piece: Piece, axis: Axis): Piece</code></a></li>
|
|
511
|
+
</ul>
|
|
512
|
+
</li>
|
|
513
|
+
<li><a href="#grid-analysis">2.6. Grid Analysis</a>
|
|
514
|
+
<ul class="sectlevel3">
|
|
515
|
+
<li><a href="#getfullrows-number">2.6.1. <code>getFullRows(): number[]</code></a></li>
|
|
516
|
+
<li><a href="#getfullcolumns-number">2.6.2. <code>getFullColumns(): number[]</code></a></li>
|
|
517
|
+
<li><a href="#getneighborscoord-coordinate-includediagonal-boolean-false-cell">2.6.3. <code>getNeighbors(coord: Coordinate, includeDiagonal: boolean = false): Cell[]</code></a></li>
|
|
518
|
+
<li><a href="#findconnectedcellscoord-coordinate-piece">2.6.4. <code>findConnectedCells(coord: Coordinate): Piece</code></a></li>
|
|
519
|
+
<li><a href="#swapcellsa-coordinate-b-coordinate-void">2.6.5. <code>swapCells(a: Coordinate, b: Coordinate): void</code></a></li>
|
|
520
|
+
</ul>
|
|
521
|
+
</li>
|
|
522
|
+
</ul>
|
|
523
|
+
</li>
|
|
524
|
+
</ul>
|
|
525
|
+
</div>
|
|
526
|
+
</div>
|
|
527
|
+
<div id="content">
|
|
528
|
+
<div id="preamble">
|
|
529
|
+
<div class="sectionbody">
|
|
530
|
+
<div class="paragraph">
|
|
531
|
+
<p>The <code>GameGrid</code> module manages the state of a 2D grid, providing a robust API for cell manipulation, row/column operations, and collision detection.</p>
|
|
532
|
+
</div>
|
|
533
|
+
</div>
|
|
534
|
+
</div>
|
|
535
|
+
<div class="sect1">
|
|
536
|
+
<h2 id="specialized-instances"><a class="link" href="#specialized-instances">1. Specialized Instances</a></h2>
|
|
537
|
+
<div class="sectionbody">
|
|
538
|
+
<div class="paragraph">
|
|
539
|
+
<p>The engine provides two main grid instances:
|
|
540
|
+
* <code>modules.grid</code>: The main game display area (dimensions defined in <code>configs</code>).
|
|
541
|
+
* <code>modules.hudGrid</code>: A specialized 4x4 grid used for HUD elements (e.g., "Next Piece" in Tetris).</p>
|
|
542
|
+
</div>
|
|
543
|
+
</div>
|
|
544
|
+
</div>
|
|
545
|
+
<div class="sect1">
|
|
546
|
+
<h2 id="api-reference"><a class="link" href="#api-reference">2. API Reference</a></h2>
|
|
547
|
+
<div class="sectionbody">
|
|
548
|
+
<div class="sect2">
|
|
549
|
+
<h3 id="core-utilities"><a class="link" href="#core-utilities">2.1. Core & Utilities</a></h3>
|
|
550
|
+
<div class="paragraph">
|
|
551
|
+
<p>Fundamental methods for grid initialization, basic cell access, and iteration. These methods form the backbone of grid state management.</p>
|
|
552
|
+
</div>
|
|
553
|
+
<div class="sect3">
|
|
554
|
+
<h4 id="width-number"><a class="link" href="#width-number">2.1.1. <code>width: number</code></a></h4>
|
|
555
|
+
<div class="paragraph">
|
|
556
|
+
<p>Read-only property returning the number of columns in the grid.</p>
|
|
557
|
+
</div>
|
|
558
|
+
<div class="paragraph">
|
|
559
|
+
<p><strong>Returns</strong></p>
|
|
560
|
+
</div>
|
|
561
|
+
<div class="paragraph">
|
|
562
|
+
<p><code>number</code> - Grid width.</p>
|
|
563
|
+
</div>
|
|
564
|
+
<hr>
|
|
565
|
+
</div>
|
|
566
|
+
<div class="sect3">
|
|
567
|
+
<h4 id="height-number"><a class="link" href="#height-number">2.1.2. <code>height: number</code></a></h4>
|
|
568
|
+
<div class="paragraph">
|
|
569
|
+
<p>Read-only property returning the number of rows in the grid.</p>
|
|
570
|
+
</div>
|
|
571
|
+
<div class="paragraph">
|
|
572
|
+
<p><strong>Returns</strong></p>
|
|
573
|
+
</div>
|
|
574
|
+
<div class="paragraph">
|
|
575
|
+
<p><code>number</code> - Grid height.</p>
|
|
576
|
+
</div>
|
|
577
|
+
<hr>
|
|
578
|
+
</div>
|
|
579
|
+
<div class="sect3">
|
|
580
|
+
<h4 id="resetgrid-void"><a class="link" href="#resetgrid-void">2.1.3. <code>resetGrid(): void</code></a></h4>
|
|
581
|
+
<div class="paragraph">
|
|
582
|
+
<p>Resets the entire grid to its empty state.</p>
|
|
583
|
+
</div>
|
|
584
|
+
<div class="paragraph">
|
|
585
|
+
<p><strong>Behavior</strong></p>
|
|
586
|
+
</div>
|
|
587
|
+
<div class="paragraph">
|
|
588
|
+
<p>Clears all cells and populates them with default empty cell objects using dimensions from the engine configuration.</p>
|
|
589
|
+
</div>
|
|
590
|
+
<hr>
|
|
591
|
+
</div>
|
|
592
|
+
<div class="sect3">
|
|
593
|
+
<h4 id="getgrid-cell"><a class="link" href="#getgrid-cell">2.1.4. <code>getGrid(): <a href="../types/Cell.html">Cell</a>[][]</code></a></h4>
|
|
594
|
+
<div class="paragraph">
|
|
595
|
+
<p>Returns the underlying 2D array of cells.</p>
|
|
596
|
+
</div>
|
|
597
|
+
<div class="paragraph">
|
|
598
|
+
<p><strong>Returns</strong></p>
|
|
599
|
+
</div>
|
|
600
|
+
<div class="paragraph">
|
|
601
|
+
<p><code><a href="../types/Cell.html">Cell</a>[][]</code> - The matrix representing the grid state.</p>
|
|
602
|
+
</div>
|
|
603
|
+
<hr>
|
|
604
|
+
</div>
|
|
605
|
+
<div class="sect3">
|
|
606
|
+
<h4 id="foreachcallback-cell-cell-void-void"><a class="link" href="#foreachcallback-cell-cell-void-void">2.1.5. <code>forEach(callback: (cell: <a href="../types/Cell.html">Cell</a>) ⇒ void): void</code></a></h4>
|
|
607
|
+
<div class="paragraph">
|
|
608
|
+
<p>Iterates over every cell and executes the provided callback.</p>
|
|
609
|
+
</div>
|
|
610
|
+
<div class="paragraph">
|
|
611
|
+
<p><strong>Parameters</strong></p>
|
|
612
|
+
</div>
|
|
613
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
614
|
+
<colgroup>
|
|
615
|
+
<col style="width: 20%;">
|
|
616
|
+
<col style="width: 20%;">
|
|
617
|
+
<col style="width: 60%;">
|
|
618
|
+
</colgroup>
|
|
619
|
+
<tbody>
|
|
620
|
+
<tr>
|
|
621
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
622
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
623
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
624
|
+
</tr>
|
|
625
|
+
<tr>
|
|
626
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>callback</code></p></td>
|
|
627
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>(cell: <a href="../types/Cell.html">Cell</a>) ⇒ void</code></p></td>
|
|
628
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Function to execute for each cell.</p></td>
|
|
629
|
+
</tr>
|
|
630
|
+
</tbody>
|
|
631
|
+
</table>
|
|
632
|
+
<hr>
|
|
633
|
+
</div>
|
|
634
|
+
<div class="sect3">
|
|
635
|
+
<h4 id="isvalidcoordinatecoordinate-coordinate-boolean"><a class="link" href="#isvalidcoordinatecoordinate-coordinate-boolean">2.1.6. <code>isValidCoordinate(coordinate: <a href="../types/Coordinate.html">Coordinate</a>): boolean</code></a></h4>
|
|
636
|
+
<div class="paragraph">
|
|
637
|
+
<p>Verifies if a coordinate is within the current grid boundaries.</p>
|
|
638
|
+
</div>
|
|
639
|
+
<div class="paragraph">
|
|
640
|
+
<p><strong>Parameters</strong></p>
|
|
641
|
+
</div>
|
|
642
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
643
|
+
<colgroup>
|
|
644
|
+
<col style="width: 20%;">
|
|
645
|
+
<col style="width: 20%;">
|
|
646
|
+
<col style="width: 60%;">
|
|
647
|
+
</colgroup>
|
|
648
|
+
<tbody>
|
|
649
|
+
<tr>
|
|
650
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
651
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
652
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
653
|
+
</tr>
|
|
654
|
+
<tr>
|
|
655
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coordinate</code></p></td>
|
|
656
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
657
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The <code>{x, y}</code> point to validate.</p></td>
|
|
658
|
+
</tr>
|
|
659
|
+
</tbody>
|
|
660
|
+
</table>
|
|
661
|
+
<div class="paragraph">
|
|
662
|
+
<p><strong>Returns</strong></p>
|
|
663
|
+
</div>
|
|
664
|
+
<div class="paragraph">
|
|
665
|
+
<p><code>boolean</code> - <code>true</code> if valid, <code>false</code> otherwise.</p>
|
|
666
|
+
</div>
|
|
667
|
+
<hr>
|
|
668
|
+
</div>
|
|
669
|
+
<div class="sect3">
|
|
670
|
+
<h4 id="getcellcoordinate-coordinate-cell-null"><a class="link" href="#getcellcoordinate-coordinate-cell-null">2.1.7. <code>getCell(coordinate: <a href="../types/Coordinate.html">Coordinate</a>): <a href="../types/Cell.html">Cell</a> | null</code></a></h4>
|
|
671
|
+
<div class="paragraph">
|
|
672
|
+
<p>Retrieves a cell at a specific coordinate.</p>
|
|
673
|
+
</div>
|
|
674
|
+
<div class="paragraph">
|
|
675
|
+
<p><strong>Parameters</strong></p>
|
|
676
|
+
</div>
|
|
677
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
678
|
+
<colgroup>
|
|
679
|
+
<col style="width: 20%;">
|
|
680
|
+
<col style="width: 20%;">
|
|
681
|
+
<col style="width: 60%;">
|
|
682
|
+
</colgroup>
|
|
683
|
+
<tbody>
|
|
684
|
+
<tr>
|
|
685
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
686
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
687
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
688
|
+
</tr>
|
|
689
|
+
<tr>
|
|
690
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coordinate</code></p></td>
|
|
691
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
692
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The <code>{x, y}</code> position to query.</p></td>
|
|
693
|
+
</tr>
|
|
694
|
+
</tbody>
|
|
695
|
+
</table>
|
|
696
|
+
<div class="paragraph">
|
|
697
|
+
<p><strong>Returns</strong></p>
|
|
698
|
+
</div>
|
|
699
|
+
<div class="paragraph">
|
|
700
|
+
<p><code><a href="../types/Cell.html">Cell</a> | null</code> - The cell object, or <code>null</code> if the coordinate is out of bounds.</p>
|
|
701
|
+
</div>
|
|
702
|
+
<hr>
|
|
703
|
+
</div>
|
|
704
|
+
<div class="sect3">
|
|
705
|
+
<h4 id="setcellvaluecoordinate-coordinate-value-number-void"><a class="link" href="#setcellvaluecoordinate-coordinate-value-number-void">2.1.8. <code>setCellValue(coordinate: <a href="../types/Coordinate.html">Coordinate</a>, value: number): void</code></a></h4>
|
|
706
|
+
<div class="paragraph">
|
|
707
|
+
<p>Updates the numeric value of a cell.</p>
|
|
708
|
+
</div>
|
|
709
|
+
<div class="paragraph">
|
|
710
|
+
<p><strong>Parameters</strong></p>
|
|
711
|
+
</div>
|
|
712
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
713
|
+
<colgroup>
|
|
714
|
+
<col style="width: 20%;">
|
|
715
|
+
<col style="width: 20%;">
|
|
716
|
+
<col style="width: 60%;">
|
|
717
|
+
</colgroup>
|
|
718
|
+
<tbody>
|
|
719
|
+
<tr>
|
|
720
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
721
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
722
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
723
|
+
</tr>
|
|
724
|
+
<tr>
|
|
725
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coordinate</code></p></td>
|
|
726
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
727
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Target position.</p></td>
|
|
728
|
+
</tr>
|
|
729
|
+
<tr>
|
|
730
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>value</code></p></td>
|
|
731
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
732
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">New status value (0 for inactive, >0 for active).</p></td>
|
|
733
|
+
</tr>
|
|
734
|
+
</tbody>
|
|
735
|
+
</table>
|
|
736
|
+
<div class="paragraph">
|
|
737
|
+
<p><strong>Behavior</strong></p>
|
|
738
|
+
</div>
|
|
739
|
+
<div class="paragraph">
|
|
740
|
+
<p>Updates the <code>value</code> property of the cell. If the coordinate is invalid, the operation is ignored.</p>
|
|
741
|
+
</div>
|
|
742
|
+
<hr>
|
|
743
|
+
</div>
|
|
744
|
+
<div class="sect3">
|
|
745
|
+
<h4 id="setcellcolorcoordinate-coordinate-color-color-void"><a class="link" href="#setcellcolorcoordinate-coordinate-color-color-void">2.1.9. <code>setCellColor(coordinate: <a href="../types/Coordinate.html">Coordinate</a>, color: <a href="../enums/Color.html">Color</a>): void</code></a></h4>
|
|
746
|
+
<div class="paragraph">
|
|
747
|
+
<p>Updates the color of a cell.</p>
|
|
748
|
+
</div>
|
|
749
|
+
<div class="paragraph">
|
|
750
|
+
<p><strong>Parameters</strong></p>
|
|
751
|
+
</div>
|
|
752
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
753
|
+
<colgroup>
|
|
754
|
+
<col style="width: 20%;">
|
|
755
|
+
<col style="width: 20%;">
|
|
756
|
+
<col style="width: 60%;">
|
|
757
|
+
</colgroup>
|
|
758
|
+
<tbody>
|
|
759
|
+
<tr>
|
|
760
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
761
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
762
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
763
|
+
</tr>
|
|
764
|
+
<tr>
|
|
765
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coordinate</code></p></td>
|
|
766
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
767
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Target position.</p></td>
|
|
768
|
+
</tr>
|
|
769
|
+
<tr>
|
|
770
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>color</code></p></td>
|
|
771
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../enums/Color.html">Color</a></code></p></td>
|
|
772
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Enum value representing the new color.</p></td>
|
|
773
|
+
</tr>
|
|
774
|
+
</tbody>
|
|
775
|
+
</table>
|
|
776
|
+
<hr>
|
|
777
|
+
</div>
|
|
778
|
+
<div class="sect3">
|
|
779
|
+
<h4 id="iscellactivecoordinate-coordinate-boolean"><a class="link" href="#iscellactivecoordinate-coordinate-boolean">2.1.10. <code>isCellActive(coordinate: <a href="../types/Coordinate.html">Coordinate</a>): boolean</code></a></h4>
|
|
780
|
+
<div class="paragraph">
|
|
781
|
+
<p>Checks if a cell is currently occupied.</p>
|
|
782
|
+
</div>
|
|
783
|
+
<div class="paragraph">
|
|
784
|
+
<p><strong>Parameters</strong></p>
|
|
785
|
+
</div>
|
|
786
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
787
|
+
<colgroup>
|
|
788
|
+
<col style="width: 20%;">
|
|
789
|
+
<col style="width: 20%;">
|
|
790
|
+
<col style="width: 60%;">
|
|
791
|
+
</colgroup>
|
|
792
|
+
<tbody>
|
|
793
|
+
<tr>
|
|
794
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
795
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
796
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
797
|
+
</tr>
|
|
798
|
+
<tr>
|
|
799
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coordinate</code></p></td>
|
|
800
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
801
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Point to check.</p></td>
|
|
802
|
+
</tr>
|
|
803
|
+
</tbody>
|
|
804
|
+
</table>
|
|
805
|
+
<div class="paragraph">
|
|
806
|
+
<p><strong>Returns</strong></p>
|
|
807
|
+
</div>
|
|
808
|
+
<div class="paragraph">
|
|
809
|
+
<p><code>boolean</code> - <code>true</code> if the cell value is greater than 0.</p>
|
|
810
|
+
</div>
|
|
811
|
+
<hr>
|
|
812
|
+
</div>
|
|
813
|
+
<div class="sect3">
|
|
814
|
+
<h4 id="iscellinactivecoordinate-coordinate-boolean"><a class="link" href="#iscellinactivecoordinate-coordinate-boolean">2.1.11. <code>isCellInactive(coordinate: <a href="../types/Coordinate.html">Coordinate</a>): boolean</code></a></h4>
|
|
815
|
+
<div class="paragraph">
|
|
816
|
+
<p>Checks if a cell is currently empty.</p>
|
|
817
|
+
</div>
|
|
818
|
+
<div class="paragraph">
|
|
819
|
+
<p><strong>Parameters</strong></p>
|
|
820
|
+
</div>
|
|
821
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
822
|
+
<colgroup>
|
|
823
|
+
<col style="width: 20%;">
|
|
824
|
+
<col style="width: 20%;">
|
|
825
|
+
<col style="width: 60%;">
|
|
826
|
+
</colgroup>
|
|
827
|
+
<tbody>
|
|
828
|
+
<tr>
|
|
829
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
830
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
831
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
832
|
+
</tr>
|
|
833
|
+
<tr>
|
|
834
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coordinate</code></p></td>
|
|
835
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
836
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Point to check.</p></td>
|
|
837
|
+
</tr>
|
|
838
|
+
</tbody>
|
|
839
|
+
</table>
|
|
840
|
+
<div class="paragraph">
|
|
841
|
+
<p><strong>Returns</strong></p>
|
|
842
|
+
</div>
|
|
843
|
+
<div class="paragraph">
|
|
844
|
+
<p><code>boolean</code> - <code>true</code> if the cell value is exactly 0.</p>
|
|
845
|
+
</div>
|
|
846
|
+
<hr>
|
|
847
|
+
</div>
|
|
848
|
+
<div class="sect3">
|
|
849
|
+
<h4 id="getdebugdata-recordstring-string-number-boolean"><a class="link" href="#getdebugdata-recordstring-string-number-boolean">2.1.12. <code>getDebugData(): Record<string, string | number | boolean></code></a></h4>
|
|
850
|
+
<div class="paragraph">
|
|
851
|
+
<p>Returns metadata for the real-time debugger.</p>
|
|
852
|
+
</div>
|
|
853
|
+
<div class="paragraph">
|
|
854
|
+
<p><strong>Returns</strong></p>
|
|
855
|
+
</div>
|
|
856
|
+
<div class="paragraph">
|
|
857
|
+
<p><code>Record<string, string | number | boolean></code> - Object containing <code>width</code>, <code>height</code>, and <code>activeCells</code> count.</p>
|
|
858
|
+
</div>
|
|
859
|
+
<hr>
|
|
860
|
+
</div>
|
|
861
|
+
</div>
|
|
862
|
+
<div class="sect2">
|
|
863
|
+
<h3 id="line-column-management"><a class="link" href="#line-column-management">2.2. Line & Column Management</a></h3>
|
|
864
|
+
<div class="paragraph">
|
|
865
|
+
<p>Methods for managing entire lines (rows) or columns. These are essential for mechanics like clearing full lines in Tetris-style games or shifting grid content as a single block.</p>
|
|
866
|
+
</div>
|
|
867
|
+
<div class="sect3">
|
|
868
|
+
<h4 id="isrowfully-number-boolean"><a class="link" href="#isrowfully-number-boolean">2.2.1. <code>isRowFull(y: number): boolean</code></a></h4>
|
|
869
|
+
<div class="paragraph">
|
|
870
|
+
<p>Checks if a specific row has no empty cells.</p>
|
|
871
|
+
</div>
|
|
872
|
+
<div class="paragraph">
|
|
873
|
+
<p><strong>Parameters</strong></p>
|
|
874
|
+
</div>
|
|
875
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
876
|
+
<colgroup>
|
|
877
|
+
<col style="width: 20%;">
|
|
878
|
+
<col style="width: 20%;">
|
|
879
|
+
<col style="width: 60%;">
|
|
880
|
+
</colgroup>
|
|
881
|
+
<tbody>
|
|
882
|
+
<tr>
|
|
883
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
884
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
885
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
886
|
+
</tr>
|
|
887
|
+
<tr>
|
|
888
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>y</code></p></td>
|
|
889
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
890
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Row index to check.</p></td>
|
|
891
|
+
</tr>
|
|
892
|
+
</tbody>
|
|
893
|
+
</table>
|
|
894
|
+
<div class="paragraph">
|
|
895
|
+
<p><strong>Returns</strong></p>
|
|
896
|
+
</div>
|
|
897
|
+
<div class="paragraph">
|
|
898
|
+
<p><code>boolean</code> - <code>true</code> if all cells in the row are active.</p>
|
|
899
|
+
</div>
|
|
900
|
+
<hr>
|
|
901
|
+
</div>
|
|
902
|
+
<div class="sect3">
|
|
903
|
+
<h4 id="isrowemptyy-number-boolean"><a class="link" href="#isrowemptyy-number-boolean">2.2.2. <code>isRowEmpty(y: number): boolean</code></a></h4>
|
|
904
|
+
<div class="paragraph">
|
|
905
|
+
<p>Checks if a specific row is completely empty.</p>
|
|
906
|
+
</div>
|
|
907
|
+
<div class="paragraph">
|
|
908
|
+
<p><strong>Parameters</strong></p>
|
|
909
|
+
</div>
|
|
910
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
911
|
+
<colgroup>
|
|
912
|
+
<col style="width: 20%;">
|
|
913
|
+
<col style="width: 20%;">
|
|
914
|
+
<col style="width: 60%;">
|
|
915
|
+
</colgroup>
|
|
916
|
+
<tbody>
|
|
917
|
+
<tr>
|
|
918
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
919
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
920
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
921
|
+
</tr>
|
|
922
|
+
<tr>
|
|
923
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>y</code></p></td>
|
|
924
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
925
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Row index to check.</p></td>
|
|
926
|
+
</tr>
|
|
927
|
+
</tbody>
|
|
928
|
+
</table>
|
|
929
|
+
<div class="paragraph">
|
|
930
|
+
<p><strong>Returns</strong></p>
|
|
931
|
+
</div>
|
|
932
|
+
<div class="paragraph">
|
|
933
|
+
<p><code>boolean</code> - <code>true</code> if all cells in the row are inactive.</p>
|
|
934
|
+
</div>
|
|
935
|
+
<hr>
|
|
936
|
+
</div>
|
|
937
|
+
<div class="sect3">
|
|
938
|
+
<h4 id="clearrowy-number-void"><a class="link" href="#clearrowy-number-void">2.2.3. <code>clearRow(y: number): void</code></a></h4>
|
|
939
|
+
<div class="paragraph">
|
|
940
|
+
<p>Resets all cells in a row to the empty state.</p>
|
|
941
|
+
</div>
|
|
942
|
+
<div class="paragraph">
|
|
943
|
+
<p><strong>Parameters</strong></p>
|
|
944
|
+
</div>
|
|
945
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
946
|
+
<colgroup>
|
|
947
|
+
<col style="width: 20%;">
|
|
948
|
+
<col style="width: 20%;">
|
|
949
|
+
<col style="width: 60%;">
|
|
950
|
+
</colgroup>
|
|
951
|
+
<tbody>
|
|
952
|
+
<tr>
|
|
953
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
954
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
955
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
956
|
+
</tr>
|
|
957
|
+
<tr>
|
|
958
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>y</code></p></td>
|
|
959
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
960
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Row index to clear.</p></td>
|
|
961
|
+
</tr>
|
|
962
|
+
</tbody>
|
|
963
|
+
</table>
|
|
964
|
+
<hr>
|
|
965
|
+
</div>
|
|
966
|
+
<div class="sect3">
|
|
967
|
+
<h4 id="shiftrowsdownfromy-number-void"><a class="link" href="#shiftrowsdownfromy-number-void">2.2.4. <code>shiftRowsDown(fromY: number): void</code></a></h4>
|
|
968
|
+
<div class="paragraph">
|
|
969
|
+
<p>Shifts all rows above an index down by one position.</p>
|
|
970
|
+
</div>
|
|
971
|
+
<div class="paragraph">
|
|
972
|
+
<p><strong>Parameters</strong></p>
|
|
973
|
+
</div>
|
|
974
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
975
|
+
<colgroup>
|
|
976
|
+
<col style="width: 20%;">
|
|
977
|
+
<col style="width: 20%;">
|
|
978
|
+
<col style="width: 60%;">
|
|
979
|
+
</colgroup>
|
|
980
|
+
<tbody>
|
|
981
|
+
<tr>
|
|
982
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
983
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
984
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
985
|
+
</tr>
|
|
986
|
+
<tr>
|
|
987
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>fromY</code></p></td>
|
|
988
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
989
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The row index to start shifting from.</p></td>
|
|
990
|
+
</tr>
|
|
991
|
+
</tbody>
|
|
992
|
+
</table>
|
|
993
|
+
<div class="paragraph">
|
|
994
|
+
<p><strong>Behavior</strong></p>
|
|
995
|
+
</div>
|
|
996
|
+
<div class="paragraph">
|
|
997
|
+
<p>Moves row <code>y-1</code> to <code>y</code> for all rows up to <code>fromY</code>. The top-most row (index 0) is cleared after the shift.</p>
|
|
998
|
+
</div>
|
|
999
|
+
<hr>
|
|
1000
|
+
</div>
|
|
1001
|
+
<div class="sect3">
|
|
1002
|
+
<h4 id="shiftrowsupfromy-number-void"><a class="link" href="#shiftrowsupfromy-number-void">2.2.5. <code>shiftRowsUp(fromY: number): void</code></a></h4>
|
|
1003
|
+
<div class="paragraph">
|
|
1004
|
+
<p>Shifts all rows below an index up by one position.</p>
|
|
1005
|
+
</div>
|
|
1006
|
+
<div class="paragraph">
|
|
1007
|
+
<p><strong>Parameters</strong></p>
|
|
1008
|
+
</div>
|
|
1009
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1010
|
+
<colgroup>
|
|
1011
|
+
<col style="width: 20%;">
|
|
1012
|
+
<col style="width: 20%;">
|
|
1013
|
+
<col style="width: 60%;">
|
|
1014
|
+
</colgroup>
|
|
1015
|
+
<tbody>
|
|
1016
|
+
<tr>
|
|
1017
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1018
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1019
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1020
|
+
</tr>
|
|
1021
|
+
<tr>
|
|
1022
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>fromY</code></p></td>
|
|
1023
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
1024
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The row index to start shifting from.</p></td>
|
|
1025
|
+
</tr>
|
|
1026
|
+
</tbody>
|
|
1027
|
+
</table>
|
|
1028
|
+
<div class="paragraph">
|
|
1029
|
+
<p><strong>Behavior</strong></p>
|
|
1030
|
+
</div>
|
|
1031
|
+
<div class="paragraph">
|
|
1032
|
+
<p>Moves row <code>y+1</code> to <code>y</code> for all rows starting from <code>fromY</code> downwards. The bottom-most row is cleared after the shift.</p>
|
|
1033
|
+
</div>
|
|
1034
|
+
<hr>
|
|
1035
|
+
</div>
|
|
1036
|
+
<div class="sect3">
|
|
1037
|
+
<h4 id="clearfullrows-number"><a class="link" href="#clearfullrows-number">2.2.6. <code>clearFullRows(): number</code></a></h4>
|
|
1038
|
+
<div class="paragraph">
|
|
1039
|
+
<p>Scans for, clears, and collapses full rows.</p>
|
|
1040
|
+
</div>
|
|
1041
|
+
<div class="paragraph">
|
|
1042
|
+
<p><strong>Returns</strong></p>
|
|
1043
|
+
</div>
|
|
1044
|
+
<div class="paragraph">
|
|
1045
|
+
<p><code>number</code> - The total count of rows cleared.</p>
|
|
1046
|
+
</div>
|
|
1047
|
+
<div class="paragraph">
|
|
1048
|
+
<p><strong>Behavior</strong></p>
|
|
1049
|
+
</div>
|
|
1050
|
+
<div class="paragraph">
|
|
1051
|
+
<p>Iterates through all rows. If a row is full, it is cleared, and all rows above it are shifted down.</p>
|
|
1052
|
+
</div>
|
|
1053
|
+
<hr>
|
|
1054
|
+
</div>
|
|
1055
|
+
<div class="sect3">
|
|
1056
|
+
<h4 id="iscolumnfullx-number-boolean"><a class="link" href="#iscolumnfullx-number-boolean">2.2.7. <code>isColumnFull(x: number): boolean</code></a></h4>
|
|
1057
|
+
<div class="paragraph">
|
|
1058
|
+
<p>Checks if a specific column has no empty cells.</p>
|
|
1059
|
+
</div>
|
|
1060
|
+
<div class="paragraph">
|
|
1061
|
+
<p><strong>Parameters</strong></p>
|
|
1062
|
+
</div>
|
|
1063
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1064
|
+
<colgroup>
|
|
1065
|
+
<col style="width: 20%;">
|
|
1066
|
+
<col style="width: 20%;">
|
|
1067
|
+
<col style="width: 60%;">
|
|
1068
|
+
</colgroup>
|
|
1069
|
+
<tbody>
|
|
1070
|
+
<tr>
|
|
1071
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1072
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1073
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1074
|
+
</tr>
|
|
1075
|
+
<tr>
|
|
1076
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
|
|
1077
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
1078
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Column index to check.</p></td>
|
|
1079
|
+
</tr>
|
|
1080
|
+
</tbody>
|
|
1081
|
+
</table>
|
|
1082
|
+
<div class="paragraph">
|
|
1083
|
+
<p><strong>Returns</strong></p>
|
|
1084
|
+
</div>
|
|
1085
|
+
<div class="paragraph">
|
|
1086
|
+
<p><code>boolean</code> - <code>true</code> if full.</p>
|
|
1087
|
+
</div>
|
|
1088
|
+
<hr>
|
|
1089
|
+
</div>
|
|
1090
|
+
<div class="sect3">
|
|
1091
|
+
<h4 id="iscolumnemptyx-number-boolean"><a class="link" href="#iscolumnemptyx-number-boolean">2.2.8. <code>isColumnEmpty(x: number): boolean</code></a></h4>
|
|
1092
|
+
<div class="paragraph">
|
|
1093
|
+
<p>Checks if a specific column is completely empty.</p>
|
|
1094
|
+
</div>
|
|
1095
|
+
<div class="paragraph">
|
|
1096
|
+
<p><strong>Parameters</strong></p>
|
|
1097
|
+
</div>
|
|
1098
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1099
|
+
<colgroup>
|
|
1100
|
+
<col style="width: 20%;">
|
|
1101
|
+
<col style="width: 20%;">
|
|
1102
|
+
<col style="width: 60%;">
|
|
1103
|
+
</colgroup>
|
|
1104
|
+
<tbody>
|
|
1105
|
+
<tr>
|
|
1106
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1107
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1108
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1109
|
+
</tr>
|
|
1110
|
+
<tr>
|
|
1111
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
|
|
1112
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
1113
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Column index to check.</p></td>
|
|
1114
|
+
</tr>
|
|
1115
|
+
</tbody>
|
|
1116
|
+
</table>
|
|
1117
|
+
<div class="paragraph">
|
|
1118
|
+
<p><strong>Returns</strong></p>
|
|
1119
|
+
</div>
|
|
1120
|
+
<div class="paragraph">
|
|
1121
|
+
<p><code>boolean</code> - <code>true</code> if empty.</p>
|
|
1122
|
+
</div>
|
|
1123
|
+
<hr>
|
|
1124
|
+
</div>
|
|
1125
|
+
<div class="sect3">
|
|
1126
|
+
<h4 id="clearcolumnx-number-void"><a class="link" href="#clearcolumnx-number-void">2.2.9. <code>clearColumn(x: number): void</code></a></h4>
|
|
1127
|
+
<div class="paragraph">
|
|
1128
|
+
<p>Resets all cells in a column to the empty state.</p>
|
|
1129
|
+
</div>
|
|
1130
|
+
<div class="paragraph">
|
|
1131
|
+
<p><strong>Parameters</strong></p>
|
|
1132
|
+
</div>
|
|
1133
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1134
|
+
<colgroup>
|
|
1135
|
+
<col style="width: 20%;">
|
|
1136
|
+
<col style="width: 20%;">
|
|
1137
|
+
<col style="width: 60%;">
|
|
1138
|
+
</colgroup>
|
|
1139
|
+
<tbody>
|
|
1140
|
+
<tr>
|
|
1141
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1142
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1143
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1144
|
+
</tr>
|
|
1145
|
+
<tr>
|
|
1146
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code></p></td>
|
|
1147
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
1148
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Column index to clear.</p></td>
|
|
1149
|
+
</tr>
|
|
1150
|
+
</tbody>
|
|
1151
|
+
</table>
|
|
1152
|
+
<hr>
|
|
1153
|
+
</div>
|
|
1154
|
+
<div class="sect3">
|
|
1155
|
+
<h4 id="shiftcolumnsrightfromx-number-void"><a class="link" href="#shiftcolumnsrightfromx-number-void">2.2.10. <code>shiftColumnsRight(fromX: number): void</code></a></h4>
|
|
1156
|
+
<div class="paragraph">
|
|
1157
|
+
<p>Shifts all columns to the right of an index.</p>
|
|
1158
|
+
</div>
|
|
1159
|
+
<div class="paragraph">
|
|
1160
|
+
<p><strong>Parameters</strong></p>
|
|
1161
|
+
</div>
|
|
1162
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1163
|
+
<colgroup>
|
|
1164
|
+
<col style="width: 20%;">
|
|
1165
|
+
<col style="width: 20%;">
|
|
1166
|
+
<col style="width: 60%;">
|
|
1167
|
+
</colgroup>
|
|
1168
|
+
<tbody>
|
|
1169
|
+
<tr>
|
|
1170
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1171
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1172
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1173
|
+
</tr>
|
|
1174
|
+
<tr>
|
|
1175
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>fromX</code></p></td>
|
|
1176
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
1177
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The column index to start shifting from.</p></td>
|
|
1178
|
+
</tr>
|
|
1179
|
+
</tbody>
|
|
1180
|
+
</table>
|
|
1181
|
+
<hr>
|
|
1182
|
+
</div>
|
|
1183
|
+
<div class="sect3">
|
|
1184
|
+
<h4 id="shiftcolumnsleftfromx-number-void"><a class="link" href="#shiftcolumnsleftfromx-number-void">2.2.11. <code>shiftColumnsLeft(fromX: number): void</code></a></h4>
|
|
1185
|
+
<div class="paragraph">
|
|
1186
|
+
<p>Shifts all columns to the left of an index.</p>
|
|
1187
|
+
</div>
|
|
1188
|
+
<div class="paragraph">
|
|
1189
|
+
<p><strong>Parameters</strong></p>
|
|
1190
|
+
</div>
|
|
1191
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1192
|
+
<colgroup>
|
|
1193
|
+
<col style="width: 20%;">
|
|
1194
|
+
<col style="width: 20%;">
|
|
1195
|
+
<col style="width: 60%;">
|
|
1196
|
+
</colgroup>
|
|
1197
|
+
<tbody>
|
|
1198
|
+
<tr>
|
|
1199
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1200
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1201
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1202
|
+
</tr>
|
|
1203
|
+
<tr>
|
|
1204
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>fromX</code></p></td>
|
|
1205
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
1206
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The column index to start shifting from.</p></td>
|
|
1207
|
+
</tr>
|
|
1208
|
+
</tbody>
|
|
1209
|
+
</table>
|
|
1210
|
+
<hr>
|
|
1211
|
+
</div>
|
|
1212
|
+
<div class="sect3">
|
|
1213
|
+
<h4 id="clearfullcolumns-number"><a class="link" href="#clearfullcolumns-number">2.2.12. <code>clearFullColumns(): number</code></a></h4>
|
|
1214
|
+
<div class="paragraph">
|
|
1215
|
+
<p>Detects and clears all full columns.</p>
|
|
1216
|
+
</div>
|
|
1217
|
+
<div class="paragraph">
|
|
1218
|
+
<p><strong>Returns</strong></p>
|
|
1219
|
+
</div>
|
|
1220
|
+
<div class="paragraph">
|
|
1221
|
+
<p><code>number</code> - The total count of cleared columns.</p>
|
|
1222
|
+
</div>
|
|
1223
|
+
<hr>
|
|
1224
|
+
</div>
|
|
1225
|
+
</div>
|
|
1226
|
+
<div class="sect2">
|
|
1227
|
+
<h3 id="region-area-management"><a class="link" href="#region-area-management">2.3. Region & Area Management</a></h3>
|
|
1228
|
+
<div class="paragraph">
|
|
1229
|
+
<p>Operations for handling multi-cell areas, rectangular regions, and piece shapes. These methods facilitate the logical placement and validation of game objects within the grid.</p>
|
|
1230
|
+
</div>
|
|
1231
|
+
<div class="sect3">
|
|
1232
|
+
<h4 id="isareaoccupiedcoordinates-coordinate-boolean"><a class="link" href="#isareaoccupiedcoordinates-coordinate-boolean">2.3.1. <code>isAreaOccupied(coordinates: <a href="../types/Coordinate.html">Coordinate</a>[]): boolean</code></a></h4>
|
|
1233
|
+
<div class="paragraph">
|
|
1234
|
+
<p>Checks for collisions between a list of coordinates and active cells in the grid.</p>
|
|
1235
|
+
</div>
|
|
1236
|
+
<div class="paragraph">
|
|
1237
|
+
<p><strong>Parameters</strong></p>
|
|
1238
|
+
</div>
|
|
1239
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1240
|
+
<colgroup>
|
|
1241
|
+
<col style="width: 20%;">
|
|
1242
|
+
<col style="width: 20%;">
|
|
1243
|
+
<col style="width: 60%;">
|
|
1244
|
+
</colgroup>
|
|
1245
|
+
<tbody>
|
|
1246
|
+
<tr>
|
|
1247
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1248
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1249
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1250
|
+
</tr>
|
|
1251
|
+
<tr>
|
|
1252
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coordinates</code></p></td>
|
|
1253
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a>[]</code></p></td>
|
|
1254
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Array of <code>{x, y}</code> points representing a shape or piece.</p></td>
|
|
1255
|
+
</tr>
|
|
1256
|
+
</tbody>
|
|
1257
|
+
</table>
|
|
1258
|
+
<div class="paragraph">
|
|
1259
|
+
<p><strong>Returns</strong></p>
|
|
1260
|
+
</div>
|
|
1261
|
+
<div class="paragraph">
|
|
1262
|
+
<p><code>boolean</code> - <code>true</code> if any coordinate is either out of bounds or already occupied (active).</p>
|
|
1263
|
+
</div>
|
|
1264
|
+
<hr>
|
|
1265
|
+
</div>
|
|
1266
|
+
<div class="sect3">
|
|
1267
|
+
<h4 id="fillareastart-coordinate-end-coordinate-value-number-color-color-void"><a class="link" href="#fillareastart-coordinate-end-coordinate-value-number-color-color-void">2.3.2. <code>fillArea(start: <a href="../types/Coordinate.html">Coordinate</a>, end: <a href="../types/Coordinate.html">Coordinate</a>, value: number, color: <a href="../enums/Color.html">Color</a>): void</code></a></h4>
|
|
1268
|
+
<div class="paragraph">
|
|
1269
|
+
<p>Fills a rectangular area with specified properties.</p>
|
|
1270
|
+
</div>
|
|
1271
|
+
<div class="paragraph">
|
|
1272
|
+
<p><strong>Parameters</strong></p>
|
|
1273
|
+
</div>
|
|
1274
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1275
|
+
<colgroup>
|
|
1276
|
+
<col style="width: 20%;">
|
|
1277
|
+
<col style="width: 20%;">
|
|
1278
|
+
<col style="width: 60%;">
|
|
1279
|
+
</colgroup>
|
|
1280
|
+
<tbody>
|
|
1281
|
+
<tr>
|
|
1282
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1283
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1284
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1285
|
+
</tr>
|
|
1286
|
+
<tr>
|
|
1287
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>start</code></p></td>
|
|
1288
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
1289
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Top-left corner of the rectangle.</p></td>
|
|
1290
|
+
</tr>
|
|
1291
|
+
<tr>
|
|
1292
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>end</code></p></td>
|
|
1293
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
1294
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Bottom-right corner of the rectangle.</p></td>
|
|
1295
|
+
</tr>
|
|
1296
|
+
<tr>
|
|
1297
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>value</code></p></td>
|
|
1298
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>number</code></p></td>
|
|
1299
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Value to apply to all cells in the area.</p></td>
|
|
1300
|
+
</tr>
|
|
1301
|
+
<tr>
|
|
1302
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>color</code></p></td>
|
|
1303
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../enums/Color.html">Color</a></code></p></td>
|
|
1304
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Color to apply to all cells in the area.</p></td>
|
|
1305
|
+
</tr>
|
|
1306
|
+
</tbody>
|
|
1307
|
+
</table>
|
|
1308
|
+
<hr>
|
|
1309
|
+
</div>
|
|
1310
|
+
<div class="sect3">
|
|
1311
|
+
<h4 id="stamppiecepiece-piece-void"><a class="link" href="#stamppiecepiece-piece-void">2.3.3. <code>stampPiece(piece: <a href="../types/Piece.html">Piece</a>): void</code></a></h4>
|
|
1312
|
+
<div class="paragraph">
|
|
1313
|
+
<p>Updates multiple specific coordinates simultaneously with their specific values and colors.</p>
|
|
1314
|
+
</div>
|
|
1315
|
+
<div class="paragraph">
|
|
1316
|
+
<p><strong>Parameters</strong></p>
|
|
1317
|
+
</div>
|
|
1318
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1319
|
+
<colgroup>
|
|
1320
|
+
<col style="width: 20%;">
|
|
1321
|
+
<col style="width: 20%;">
|
|
1322
|
+
<col style="width: 60%;">
|
|
1323
|
+
</colgroup>
|
|
1324
|
+
<tbody>
|
|
1325
|
+
<tr>
|
|
1326
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1327
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1328
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1329
|
+
</tr>
|
|
1330
|
+
<tr>
|
|
1331
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>piece</code></p></td>
|
|
1332
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Piece.html">Piece</a></code></p></td>
|
|
1333
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The collection of cells to stamp.</p></td>
|
|
1334
|
+
</tr>
|
|
1335
|
+
</tbody>
|
|
1336
|
+
</table>
|
|
1337
|
+
<hr>
|
|
1338
|
+
</div>
|
|
1339
|
+
<div class="sect3">
|
|
1340
|
+
<h4 id="stampcellcell-cell-void"><a class="link" href="#stampcellcell-cell-void">2.3.4. <code>stampCell(cell: <a href="../types/Cell.html">Cell</a>): void</code></a></h4>
|
|
1341
|
+
<div class="paragraph">
|
|
1342
|
+
<p>Updates a single coordinate with a specific value and color from a Cell.</p>
|
|
1343
|
+
</div>
|
|
1344
|
+
<div class="paragraph">
|
|
1345
|
+
<p><strong>Parameters</strong></p>
|
|
1346
|
+
</div>
|
|
1347
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1348
|
+
<colgroup>
|
|
1349
|
+
<col style="width: 20%;">
|
|
1350
|
+
<col style="width: 20%;">
|
|
1351
|
+
<col style="width: 60%;">
|
|
1352
|
+
</colgroup>
|
|
1353
|
+
<tbody>
|
|
1354
|
+
<tr>
|
|
1355
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1356
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1357
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1358
|
+
</tr>
|
|
1359
|
+
<tr>
|
|
1360
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cell</code></p></td>
|
|
1361
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Cell.html">Cell</a></code></p></td>
|
|
1362
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The cell object containing the target coordinate, value, and color.</p></td>
|
|
1363
|
+
</tr>
|
|
1364
|
+
</tbody>
|
|
1365
|
+
</table>
|
|
1366
|
+
<hr>
|
|
1367
|
+
</div>
|
|
1368
|
+
</div>
|
|
1369
|
+
<div class="sect2">
|
|
1370
|
+
<h3 id="movement-projections"><a class="link" href="#movement-projections">2.4. Movement & Projections</a></h3>
|
|
1371
|
+
<div class="paragraph">
|
|
1372
|
+
<p>Advanced methods for handling piece and cell movement with built-in collision detection and trajectory prediction.</p>
|
|
1373
|
+
</div>
|
|
1374
|
+
<div class="sect3">
|
|
1375
|
+
<h4 id="movepiecepiece-piece-direction-vector-piece-null"><a class="link" href="#movepiecepiece-piece-direction-vector-piece-null">2.4.1. <code>movePiece(piece: <a href="../types/Piece.html">Piece</a>, direction: <a href="../types/Vector.html">Vector</a>): <a href="../types/Piece.html">Piece</a> | null</code></a></h4>
|
|
1376
|
+
<div class="paragraph">
|
|
1377
|
+
<p>Attempts to shift a collection of cells (a piece) in a specified direction.</p>
|
|
1378
|
+
</div>
|
|
1379
|
+
<div class="paragraph">
|
|
1380
|
+
<p><strong>Parameters</strong></p>
|
|
1381
|
+
</div>
|
|
1382
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1383
|
+
<colgroup>
|
|
1384
|
+
<col style="width: 20%;">
|
|
1385
|
+
<col style="width: 20%;">
|
|
1386
|
+
<col style="width: 60%;">
|
|
1387
|
+
</colgroup>
|
|
1388
|
+
<tbody>
|
|
1389
|
+
<tr>
|
|
1390
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1391
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1392
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1393
|
+
</tr>
|
|
1394
|
+
<tr>
|
|
1395
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>piece</code></p></td>
|
|
1396
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Piece.html">Piece</a></code></p></td>
|
|
1397
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The current collection of cells.</p></td>
|
|
1398
|
+
</tr>
|
|
1399
|
+
<tr>
|
|
1400
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>direction</code></p></td>
|
|
1401
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Vector.html">Vector</a></code></p></td>
|
|
1402
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The movement vector (e.g., <code>{x: -1, y: 0}</code>).</p></td>
|
|
1403
|
+
</tr>
|
|
1404
|
+
</tbody>
|
|
1405
|
+
</table>
|
|
1406
|
+
<div class="paragraph">
|
|
1407
|
+
<p><strong>Returns</strong></p>
|
|
1408
|
+
</div>
|
|
1409
|
+
<div class="paragraph">
|
|
1410
|
+
<p><code><a href="../types/Piece.html">Piece</a> | null</code> - The new piece with updated coordinates if the move is valid, or <code>null</code> if blocked.</p>
|
|
1411
|
+
</div>
|
|
1412
|
+
<div class="paragraph">
|
|
1413
|
+
<p><strong>Behavior</strong></p>
|
|
1414
|
+
</div>
|
|
1415
|
+
<div class="paragraph">
|
|
1416
|
+
<p>Validates that all new positions are within grid boundaries and are not occupied by other active cells. Cells that are already part of the input <code>piece</code> are ignored during collision detection to allow a piece to move "into its own space."</p>
|
|
1417
|
+
</div>
|
|
1418
|
+
<hr>
|
|
1419
|
+
</div>
|
|
1420
|
+
<div class="sect3">
|
|
1421
|
+
<h4 id="movepieceleftpiece-piece-piece-null"><a class="link" href="#movepieceleftpiece-piece-piece-null">2.4.2. <code>movePieceLeft(piece: <a href="../types/Piece.html">Piece</a>): <a href="../types/Piece.html">Piece</a> | null</code></a></h4>
|
|
1422
|
+
<div class="paragraph">
|
|
1423
|
+
<p>Alias for <code>movePiece</code> shifting one unit to the left.</p>
|
|
1424
|
+
</div>
|
|
1425
|
+
<hr>
|
|
1426
|
+
</div>
|
|
1427
|
+
<div class="sect3">
|
|
1428
|
+
<h4 id="movepiecerightpiece-piece-piece-null"><a class="link" href="#movepiecerightpiece-piece-piece-null">2.4.3. <code>movePieceRight(piece: <a href="../types/Piece.html">Piece</a>): <a href="../types/Piece.html">Piece</a> | null</code></a></h4>
|
|
1429
|
+
<div class="paragraph">
|
|
1430
|
+
<p>Alias for <code>movePiece</code> shifting one unit to the right.</p>
|
|
1431
|
+
</div>
|
|
1432
|
+
<hr>
|
|
1433
|
+
</div>
|
|
1434
|
+
<div class="sect3">
|
|
1435
|
+
<h4 id="movepieceuppiece-piece-piece-null"><a class="link" href="#movepieceuppiece-piece-piece-null">2.4.4. <code>movePieceUp(piece: <a href="../types/Piece.html">Piece</a>): <a href="../types/Piece.html">Piece</a> | null</code></a></h4>
|
|
1436
|
+
<div class="paragraph">
|
|
1437
|
+
<p>Alias for <code>movePiece</code> shifting one unit up.</p>
|
|
1438
|
+
</div>
|
|
1439
|
+
<hr>
|
|
1440
|
+
</div>
|
|
1441
|
+
<div class="sect3">
|
|
1442
|
+
<h4 id="movepiecedownpiece-piece-piece-null"><a class="link" href="#movepiecedownpiece-piece-piece-null">2.4.5. <code>movePieceDown(piece: <a href="../types/Piece.html">Piece</a>): <a href="../types/Piece.html">Piece</a> | null</code></a></h4>
|
|
1443
|
+
<div class="paragraph">
|
|
1444
|
+
<p>Alias for <code>movePiece</code> shifting one unit down.</p>
|
|
1445
|
+
</div>
|
|
1446
|
+
<hr>
|
|
1447
|
+
</div>
|
|
1448
|
+
<div class="sect3">
|
|
1449
|
+
<h4 id="movecellcell-cell-direction-vector-cell-null"><a class="link" href="#movecellcell-cell-direction-vector-cell-null">2.4.6. <code>moveCell(cell: <a href="../types/Cell.html">Cell</a>, direction: <a href="../types/Vector.html">Vector</a>): <a href="../types/Cell.html">Cell</a> | null</code></a></h4>
|
|
1450
|
+
<div class="paragraph">
|
|
1451
|
+
<p>Attempts to shift a single cell in a specified direction.</p>
|
|
1452
|
+
</div>
|
|
1453
|
+
<div class="paragraph">
|
|
1454
|
+
<p><strong>Parameters</strong></p>
|
|
1455
|
+
</div>
|
|
1456
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1457
|
+
<colgroup>
|
|
1458
|
+
<col style="width: 20%;">
|
|
1459
|
+
<col style="width: 20%;">
|
|
1460
|
+
<col style="width: 60%;">
|
|
1461
|
+
</colgroup>
|
|
1462
|
+
<tbody>
|
|
1463
|
+
<tr>
|
|
1464
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1465
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1466
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1467
|
+
</tr>
|
|
1468
|
+
<tr>
|
|
1469
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>cell</code></p></td>
|
|
1470
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Cell.html">Cell</a></code></p></td>
|
|
1471
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The current cell.</p></td>
|
|
1472
|
+
</tr>
|
|
1473
|
+
<tr>
|
|
1474
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>direction</code></p></td>
|
|
1475
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Vector.html">Vector</a></code></p></td>
|
|
1476
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The movement vector.</p></td>
|
|
1477
|
+
</tr>
|
|
1478
|
+
</tbody>
|
|
1479
|
+
</table>
|
|
1480
|
+
<div class="paragraph">
|
|
1481
|
+
<p><strong>Returns</strong></p>
|
|
1482
|
+
</div>
|
|
1483
|
+
<div class="paragraph">
|
|
1484
|
+
<p><code><a href="../types/Cell.html">Cell</a> | null</code> - The new cell with updated coordinate if the move is valid, or <code>null</code> if blocked.</p>
|
|
1485
|
+
</div>
|
|
1486
|
+
<div class="paragraph">
|
|
1487
|
+
<p><strong>Behavior</strong></p>
|
|
1488
|
+
</div>
|
|
1489
|
+
<div class="paragraph">
|
|
1490
|
+
<p>Validates that the target position is within grid boundaries and is currently empty (inactive).</p>
|
|
1491
|
+
</div>
|
|
1492
|
+
<hr>
|
|
1493
|
+
</div>
|
|
1494
|
+
<div class="sect3">
|
|
1495
|
+
<h4 id="movecellleftcell-cell-cell-null"><a class="link" href="#movecellleftcell-cell-cell-null">2.4.7. <code>moveCellLeft(cell: <a href="../types/Cell.html">Cell</a>): <a href="../types/Cell.html">Cell</a> | null</code></a></h4>
|
|
1496
|
+
<div class="paragraph">
|
|
1497
|
+
<p>Alias for <code>moveCell</code> shifting one unit to the left.</p>
|
|
1498
|
+
</div>
|
|
1499
|
+
<hr>
|
|
1500
|
+
</div>
|
|
1501
|
+
<div class="sect3">
|
|
1502
|
+
<h4 id="movecellrightcell-cell-cell-null"><a class="link" href="#movecellrightcell-cell-cell-null">2.4.8. <code>moveCellRight(cell: <a href="../types/Cell.html">Cell</a>): <a href="../types/Cell.html">Cell</a> | null</code></a></h4>
|
|
1503
|
+
<div class="paragraph">
|
|
1504
|
+
<p>Alias for <code>moveCell</code> shifting one unit to the right.</p>
|
|
1505
|
+
</div>
|
|
1506
|
+
<hr>
|
|
1507
|
+
</div>
|
|
1508
|
+
<div class="sect3">
|
|
1509
|
+
<h4 id="movecellupcell-cell-cell-null"><a class="link" href="#movecellupcell-cell-cell-null">2.4.9. <code>moveCellUp(cell: <a href="../types/Cell.html">Cell</a>): <a href="../types/Cell.html">Cell</a> | null</code></a></h4>
|
|
1510
|
+
<div class="paragraph">
|
|
1511
|
+
<p>Alias for <code>moveCell</code> shifting one unit up.</p>
|
|
1512
|
+
</div>
|
|
1513
|
+
<hr>
|
|
1514
|
+
</div>
|
|
1515
|
+
<div class="sect3">
|
|
1516
|
+
<h4 id="movecelldowncell-cell-cell-null"><a class="link" href="#movecelldowncell-cell-cell-null">2.4.10. <code>moveCellDown(cell: <a href="../types/Cell.html">Cell</a>): <a href="../types/Cell.html">Cell</a> | null</code></a></h4>
|
|
1517
|
+
<div class="paragraph">
|
|
1518
|
+
<p>Alias for <code>moveCell</code> shifting one unit down.</p>
|
|
1519
|
+
</div>
|
|
1520
|
+
<hr>
|
|
1521
|
+
</div>
|
|
1522
|
+
<div class="sect3">
|
|
1523
|
+
<h4 id="getdroppathpiece-piece-piece"><a class="link" href="#getdroppathpiece-piece-piece">2.4.11. <code>getDropPath(piece: <a href="../types/Piece.html">Piece</a>): <a href="../types/Piece.html">Piece</a></code></a></h4>
|
|
1524
|
+
<div class="paragraph">
|
|
1525
|
+
<p>Calculates the final vertical resting position of a piece if it were dropped continuously downwards.</p>
|
|
1526
|
+
</div>
|
|
1527
|
+
<div class="paragraph">
|
|
1528
|
+
<p><strong>Parameters</strong></p>
|
|
1529
|
+
</div>
|
|
1530
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1531
|
+
<colgroup>
|
|
1532
|
+
<col style="width: 20%;">
|
|
1533
|
+
<col style="width: 20%;">
|
|
1534
|
+
<col style="width: 60%;">
|
|
1535
|
+
</colgroup>
|
|
1536
|
+
<tbody>
|
|
1537
|
+
<tr>
|
|
1538
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1539
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1540
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1541
|
+
</tr>
|
|
1542
|
+
<tr>
|
|
1543
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>piece</code></p></td>
|
|
1544
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Piece.html">Piece</a></code></p></td>
|
|
1545
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The piece to project.</p></td>
|
|
1546
|
+
</tr>
|
|
1547
|
+
</tbody>
|
|
1548
|
+
</table>
|
|
1549
|
+
<div class="paragraph">
|
|
1550
|
+
<p><strong>Returns</strong></p>
|
|
1551
|
+
</div>
|
|
1552
|
+
<div class="paragraph">
|
|
1553
|
+
<p><code><a href="../types/Piece.html">Piece</a></code> - A new piece representing the final resting position. Useful for rendering "ghost" or "preview" pieces.</p>
|
|
1554
|
+
</div>
|
|
1555
|
+
<hr>
|
|
1556
|
+
</div>
|
|
1557
|
+
<div class="sect3">
|
|
1558
|
+
<h4 id="getrisepathpiece-piece-piece"><a class="link" href="#getrisepathpiece-piece-piece">2.4.12. <code>getRisePath(piece: <a href="../types/Piece.html">Piece</a>): <a href="../types/Piece.html">Piece</a></code></a></h4>
|
|
1559
|
+
<div class="paragraph">
|
|
1560
|
+
<p>Calculates the final vertical resting position of a piece if it were moved continuously upwards.</p>
|
|
1561
|
+
</div>
|
|
1562
|
+
<div class="paragraph">
|
|
1563
|
+
<p><strong>Parameters</strong></p>
|
|
1564
|
+
</div>
|
|
1565
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1566
|
+
<colgroup>
|
|
1567
|
+
<col style="width: 20%;">
|
|
1568
|
+
<col style="width: 20%;">
|
|
1569
|
+
<col style="width: 60%;">
|
|
1570
|
+
</colgroup>
|
|
1571
|
+
<tbody>
|
|
1572
|
+
<tr>
|
|
1573
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1574
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1575
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1576
|
+
</tr>
|
|
1577
|
+
<tr>
|
|
1578
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>piece</code></p></td>
|
|
1579
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Piece.html">Piece</a></code></p></td>
|
|
1580
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The piece to project.</p></td>
|
|
1581
|
+
</tr>
|
|
1582
|
+
</tbody>
|
|
1583
|
+
</table>
|
|
1584
|
+
<div class="paragraph">
|
|
1585
|
+
<p><strong>Returns</strong></p>
|
|
1586
|
+
</div>
|
|
1587
|
+
<div class="paragraph">
|
|
1588
|
+
<p><code><a href="../types/Piece.html">Piece</a></code> - A new piece representing the highest resting position.</p>
|
|
1589
|
+
</div>
|
|
1590
|
+
<hr>
|
|
1591
|
+
</div>
|
|
1592
|
+
<div class="sect3">
|
|
1593
|
+
<h4 id="getreachpathleftpiece-piece-piece"><a class="link" href="#getreachpathleftpiece-piece-piece">2.4.13. <code>getReachPathLeft(piece: <a href="../types/Piece.html">Piece</a>): <a href="../types/Piece.html">Piece</a></code></a></h4>
|
|
1594
|
+
<div class="paragraph">
|
|
1595
|
+
<p>Calculates the final horizontal resting position of a piece if it were moved continuously to the left.</p>
|
|
1596
|
+
</div>
|
|
1597
|
+
<div class="paragraph">
|
|
1598
|
+
<p><strong>Parameters</strong></p>
|
|
1599
|
+
</div>
|
|
1600
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1601
|
+
<colgroup>
|
|
1602
|
+
<col style="width: 20%;">
|
|
1603
|
+
<col style="width: 20%;">
|
|
1604
|
+
<col style="width: 60%;">
|
|
1605
|
+
</colgroup>
|
|
1606
|
+
<tbody>
|
|
1607
|
+
<tr>
|
|
1608
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1609
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1610
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1611
|
+
</tr>
|
|
1612
|
+
<tr>
|
|
1613
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>piece</code></p></td>
|
|
1614
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Piece.html">Piece</a></code></p></td>
|
|
1615
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The piece to project.</p></td>
|
|
1616
|
+
</tr>
|
|
1617
|
+
</tbody>
|
|
1618
|
+
</table>
|
|
1619
|
+
<div class="paragraph">
|
|
1620
|
+
<p><strong>Returns</strong></p>
|
|
1621
|
+
</div>
|
|
1622
|
+
<div class="paragraph">
|
|
1623
|
+
<p><code><a href="../types/Piece.html">Piece</a></code> - A new piece representing the leftmost resting position.</p>
|
|
1624
|
+
</div>
|
|
1625
|
+
<hr>
|
|
1626
|
+
</div>
|
|
1627
|
+
<div class="sect3">
|
|
1628
|
+
<h4 id="getreachpathrightpiece-piece-piece"><a class="link" href="#getreachpathrightpiece-piece-piece">2.4.14. <code>getReachPathRight(piece: <a href="../types/Piece.html">Piece</a>): <a href="../types/Piece.html">Piece</a></code></a></h4>
|
|
1629
|
+
<div class="paragraph">
|
|
1630
|
+
<p>Calculates the final horizontal resting position of a piece if it were moved continuously to the right.</p>
|
|
1631
|
+
</div>
|
|
1632
|
+
<div class="paragraph">
|
|
1633
|
+
<p><strong>Parameters</strong></p>
|
|
1634
|
+
</div>
|
|
1635
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1636
|
+
<colgroup>
|
|
1637
|
+
<col style="width: 20%;">
|
|
1638
|
+
<col style="width: 20%;">
|
|
1639
|
+
<col style="width: 60%;">
|
|
1640
|
+
</colgroup>
|
|
1641
|
+
<tbody>
|
|
1642
|
+
<tr>
|
|
1643
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1644
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1645
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1646
|
+
</tr>
|
|
1647
|
+
<tr>
|
|
1648
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>piece</code></p></td>
|
|
1649
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Piece.html">Piece</a></code></p></td>
|
|
1650
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The piece to project.</p></td>
|
|
1651
|
+
</tr>
|
|
1652
|
+
</tbody>
|
|
1653
|
+
</table>
|
|
1654
|
+
<div class="paragraph">
|
|
1655
|
+
<p><strong>Returns</strong></p>
|
|
1656
|
+
</div>
|
|
1657
|
+
<div class="paragraph">
|
|
1658
|
+
<p><code><a href="../types/Piece.html">Piece</a></code> - A new piece representing the rightmost resting position.</p>
|
|
1659
|
+
</div>
|
|
1660
|
+
<hr>
|
|
1661
|
+
</div>
|
|
1662
|
+
</div>
|
|
1663
|
+
<div class="sect2">
|
|
1664
|
+
<h3 id="transformations"><a class="link" href="#transformations">2.5. Transformations</a></h3>
|
|
1665
|
+
<div class="paragraph">
|
|
1666
|
+
<p>Geometric operations for rotating or mirroring complex shapes within the grid boundaries.</p>
|
|
1667
|
+
</div>
|
|
1668
|
+
<div class="sect3">
|
|
1669
|
+
<h4 id="rotatepiecepiece-piece-origin-coordinate-clockwise-boolean-true-piece-null"><a class="link" href="#rotatepiecepiece-piece-origin-coordinate-clockwise-boolean-true-piece-null">2.5.1. <code>rotatePiece(piece: <a href="../types/Piece.html">Piece</a>, origin: <a href="../types/Coordinate.html">Coordinate</a>, clockwise: boolean = true): <a href="../types/Piece.html">Piece</a> | null</code></a></h4>
|
|
1670
|
+
<div class="paragraph">
|
|
1671
|
+
<p>Attempts to rotate a collection of cells 90 degrees around a specific origin point.</p>
|
|
1672
|
+
</div>
|
|
1673
|
+
<div class="paragraph">
|
|
1674
|
+
<p><strong>Parameters</strong></p>
|
|
1675
|
+
</div>
|
|
1676
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1677
|
+
<colgroup>
|
|
1678
|
+
<col style="width: 20%;">
|
|
1679
|
+
<col style="width: 20%;">
|
|
1680
|
+
<col style="width: 60%;">
|
|
1681
|
+
</colgroup>
|
|
1682
|
+
<tbody>
|
|
1683
|
+
<tr>
|
|
1684
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1685
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1686
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1687
|
+
</tr>
|
|
1688
|
+
<tr>
|
|
1689
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>piece</code></p></td>
|
|
1690
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Piece.html">Piece</a></code></p></td>
|
|
1691
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The piece to rotate.</p></td>
|
|
1692
|
+
</tr>
|
|
1693
|
+
<tr>
|
|
1694
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>origin</code></p></td>
|
|
1695
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
1696
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The pivot point for rotation.</p></td>
|
|
1697
|
+
</tr>
|
|
1698
|
+
<tr>
|
|
1699
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>clockwise</code></p></td>
|
|
1700
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>boolean</code></p></td>
|
|
1701
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, rotates 90° clockwise; otherwise, 90° counter-clockwise.</p></td>
|
|
1702
|
+
</tr>
|
|
1703
|
+
</tbody>
|
|
1704
|
+
</table>
|
|
1705
|
+
<div class="paragraph">
|
|
1706
|
+
<p><strong>Returns</strong></p>
|
|
1707
|
+
</div>
|
|
1708
|
+
<div class="paragraph">
|
|
1709
|
+
<p><code><a href="../types/Piece.html">Piece</a> | null</code> - The new piece if rotation is valid (no collisions), or <code>null</code> if blocked.</p>
|
|
1710
|
+
</div>
|
|
1711
|
+
<hr>
|
|
1712
|
+
</div>
|
|
1713
|
+
<div class="sect3">
|
|
1714
|
+
<h4 id="mirrorpiecepiece-piece-axis-axis-piece"><a class="link" href="#mirrorpiecepiece-piece-axis-axis-piece">2.5.2. <code>mirrorPiece(piece: <a href="../types/Piece.html">Piece</a>, axis: <a href="../types/Axis.html">Axis</a>): <a href="../types/Piece.html">Piece</a></code></a></h4>
|
|
1715
|
+
<div class="paragraph">
|
|
1716
|
+
<p>Mirrors a piece across its own center on a specific axis.</p>
|
|
1717
|
+
</div>
|
|
1718
|
+
<div class="paragraph">
|
|
1719
|
+
<p><strong>Parameters</strong></p>
|
|
1720
|
+
</div>
|
|
1721
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1722
|
+
<colgroup>
|
|
1723
|
+
<col style="width: 20%;">
|
|
1724
|
+
<col style="width: 20%;">
|
|
1725
|
+
<col style="width: 60%;">
|
|
1726
|
+
</colgroup>
|
|
1727
|
+
<tbody>
|
|
1728
|
+
<tr>
|
|
1729
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1730
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1731
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1732
|
+
</tr>
|
|
1733
|
+
<tr>
|
|
1734
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>piece</code></p></td>
|
|
1735
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Piece.html">Piece</a></code></p></td>
|
|
1736
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The piece to mirror.</p></td>
|
|
1737
|
+
</tr>
|
|
1738
|
+
<tr>
|
|
1739
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>axis</code></p></td>
|
|
1740
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Axis.html">Axis</a></code></p></td>
|
|
1741
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The axis ('x' or 'y') to flip across.</p></td>
|
|
1742
|
+
</tr>
|
|
1743
|
+
</tbody>
|
|
1744
|
+
</table>
|
|
1745
|
+
<div class="paragraph">
|
|
1746
|
+
<p><strong>Returns</strong></p>
|
|
1747
|
+
</div>
|
|
1748
|
+
<div class="paragraph">
|
|
1749
|
+
<p><code><a href="../types/Piece.html">Piece</a></code> - The mirrored piece.</p>
|
|
1750
|
+
</div>
|
|
1751
|
+
<hr>
|
|
1752
|
+
</div>
|
|
1753
|
+
</div>
|
|
1754
|
+
<div class="sect2">
|
|
1755
|
+
<h3 id="grid-analysis"><a class="link" href="#grid-analysis">2.6. Grid Analysis</a></h3>
|
|
1756
|
+
<div class="paragraph">
|
|
1757
|
+
<p>Methods for inspecting grid state, finding patterns, and performing searches over the active cell data.</p>
|
|
1758
|
+
</div>
|
|
1759
|
+
<div class="sect3">
|
|
1760
|
+
<h4 id="getfullrows-number"><a class="link" href="#getfullrows-number">2.6.1. <code>getFullRows(): number[]</code></a></h4>
|
|
1761
|
+
<div class="paragraph">
|
|
1762
|
+
<p>Identifies all rows that are completely filled with active cells.</p>
|
|
1763
|
+
</div>
|
|
1764
|
+
<div class="paragraph">
|
|
1765
|
+
<p><strong>Returns</strong></p>
|
|
1766
|
+
</div>
|
|
1767
|
+
<div class="paragraph">
|
|
1768
|
+
<p><code>number[]</code> - An array of <code>y</code> indices representing the filled rows.</p>
|
|
1769
|
+
</div>
|
|
1770
|
+
<hr>
|
|
1771
|
+
</div>
|
|
1772
|
+
<div class="sect3">
|
|
1773
|
+
<h4 id="getfullcolumns-number"><a class="link" href="#getfullcolumns-number">2.6.2. <code>getFullColumns(): number[]</code></a></h4>
|
|
1774
|
+
<div class="paragraph">
|
|
1775
|
+
<p>Identifies all columns that are completely filled with active cells.</p>
|
|
1776
|
+
</div>
|
|
1777
|
+
<div class="paragraph">
|
|
1778
|
+
<p><strong>Returns</strong></p>
|
|
1779
|
+
</div>
|
|
1780
|
+
<div class="paragraph">
|
|
1781
|
+
<p><code>number[]</code> - An array of <code>x</code> indices representing the filled columns.</p>
|
|
1782
|
+
</div>
|
|
1783
|
+
<hr>
|
|
1784
|
+
</div>
|
|
1785
|
+
<div class="sect3">
|
|
1786
|
+
<h4 id="getneighborscoord-coordinate-includediagonal-boolean-false-cell"><a class="link" href="#getneighborscoord-coordinate-includediagonal-boolean-false-cell">2.6.3. <code>getNeighbors(coord: <a href="../types/Coordinate.html">Coordinate</a>, includeDiagonal: boolean = false): <a href="../types/Cell.html">Cell</a>[]</code></a></h4>
|
|
1787
|
+
<div class="paragraph">
|
|
1788
|
+
<p>Returns all active cells adjacent to a specific coordinate.</p>
|
|
1789
|
+
</div>
|
|
1790
|
+
<div class="paragraph">
|
|
1791
|
+
<p><strong>Parameters</strong></p>
|
|
1792
|
+
</div>
|
|
1793
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1794
|
+
<colgroup>
|
|
1795
|
+
<col style="width: 20%;">
|
|
1796
|
+
<col style="width: 20%;">
|
|
1797
|
+
<col style="width: 60%;">
|
|
1798
|
+
</colgroup>
|
|
1799
|
+
<tbody>
|
|
1800
|
+
<tr>
|
|
1801
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1802
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1803
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1804
|
+
</tr>
|
|
1805
|
+
<tr>
|
|
1806
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coord</code></p></td>
|
|
1807
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
1808
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The central coordinate.</p></td>
|
|
1809
|
+
</tr>
|
|
1810
|
+
<tr>
|
|
1811
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>includeDiagonal</code></p></td>
|
|
1812
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>boolean</code></p></td>
|
|
1813
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, checks 8 neighbors; otherwise, checks the 4 cardinal neighbors.</p></td>
|
|
1814
|
+
</tr>
|
|
1815
|
+
</tbody>
|
|
1816
|
+
</table>
|
|
1817
|
+
<div class="paragraph">
|
|
1818
|
+
<p><strong>Returns</strong></p>
|
|
1819
|
+
</div>
|
|
1820
|
+
<div class="paragraph">
|
|
1821
|
+
<p><code><a href="../types/Cell.html">Cell</a>[]</code> - List of neighboring cells found.</p>
|
|
1822
|
+
</div>
|
|
1823
|
+
<hr>
|
|
1824
|
+
</div>
|
|
1825
|
+
<div class="sect3">
|
|
1826
|
+
<h4 id="findconnectedcellscoord-coordinate-piece"><a class="link" href="#findconnectedcellscoord-coordinate-piece">2.6.4. <code>findConnectedCells(coord: <a href="../types/Coordinate.html">Coordinate</a>): <a href="../types/Piece.html">Piece</a></code></a></h4>
|
|
1827
|
+
<div class="paragraph">
|
|
1828
|
+
<p>Finds all connected active cells of the same value starting from a specific coordinate using a Breadth-First Search (BFS) algorithm.</p>
|
|
1829
|
+
</div>
|
|
1830
|
+
<div class="paragraph">
|
|
1831
|
+
<p><strong>Parameters</strong></p>
|
|
1832
|
+
</div>
|
|
1833
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1834
|
+
<colgroup>
|
|
1835
|
+
<col style="width: 20%;">
|
|
1836
|
+
<col style="width: 20%;">
|
|
1837
|
+
<col style="width: 60%;">
|
|
1838
|
+
</colgroup>
|
|
1839
|
+
<tbody>
|
|
1840
|
+
<tr>
|
|
1841
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1842
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1843
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1844
|
+
</tr>
|
|
1845
|
+
<tr>
|
|
1846
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>coord</code></p></td>
|
|
1847
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
1848
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">The starting point for the search.</p></td>
|
|
1849
|
+
</tr>
|
|
1850
|
+
</tbody>
|
|
1851
|
+
</table>
|
|
1852
|
+
<div class="paragraph">
|
|
1853
|
+
<p><strong>Returns</strong></p>
|
|
1854
|
+
</div>
|
|
1855
|
+
<div class="paragraph">
|
|
1856
|
+
<p><code><a href="../types/Piece.html">Piece</a></code> - A collection of all connected cells found.</p>
|
|
1857
|
+
</div>
|
|
1858
|
+
<hr>
|
|
1859
|
+
</div>
|
|
1860
|
+
<div class="sect3">
|
|
1861
|
+
<h4 id="swapcellsa-coordinate-b-coordinate-void"><a class="link" href="#swapcellsa-coordinate-b-coordinate-void">2.6.5. <code>swapCells(a: <a href="../types/Coordinate.html">Coordinate</a>, b: <a href="../types/Coordinate.html">Coordinate</a>): void</code></a></h4>
|
|
1862
|
+
<div class="paragraph">
|
|
1863
|
+
<p>Swaps the values and colors of two specified cells on the grid.</p>
|
|
1864
|
+
</div>
|
|
1865
|
+
<div class="paragraph">
|
|
1866
|
+
<p><strong>Parameters</strong></p>
|
|
1867
|
+
</div>
|
|
1868
|
+
<table class="tableblock frame-all grid-all stretch">
|
|
1869
|
+
<colgroup>
|
|
1870
|
+
<col style="width: 20%;">
|
|
1871
|
+
<col style="width: 20%;">
|
|
1872
|
+
<col style="width: 60%;">
|
|
1873
|
+
</colgroup>
|
|
1874
|
+
<tbody>
|
|
1875
|
+
<tr>
|
|
1876
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
|
|
1877
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td>
|
|
1878
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Description</p></td>
|
|
1879
|
+
</tr>
|
|
1880
|
+
<tr>
|
|
1881
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>a</code></p></td>
|
|
1882
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
1883
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">First coordinate.</p></td>
|
|
1884
|
+
</tr>
|
|
1885
|
+
<tr>
|
|
1886
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>b</code></p></td>
|
|
1887
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../types/Coordinate.html">Coordinate</a></code></p></td>
|
|
1888
|
+
<td class="tableblock halign-left valign-top"><p class="tableblock">Second coordinate.</p></td>
|
|
1889
|
+
</tr>
|
|
1890
|
+
</tbody>
|
|
1891
|
+
</table>
|
|
1892
|
+
<hr>
|
|
1893
|
+
</div>
|
|
1894
|
+
</div>
|
|
1895
|
+
</div>
|
|
1896
|
+
</div>
|
|
1897
|
+
</div>
|
|
1898
|
+
<div id="footer">
|
|
1899
|
+
<div id="footer-text">
|
|
1900
|
+
</div>
|
|
1901
|
+
</div>
|
|
1902
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.3/highlight.min.js"></script>
|
|
1903
|
+
<script>
|
|
1904
|
+
if (!hljs.initHighlighting.called) {
|
|
1905
|
+
hljs.initHighlighting.called = true
|
|
1906
|
+
;[].slice.call(document.querySelectorAll('pre.highlight > code[data-lang]')).forEach(function (el) { hljs.highlightBlock(el) })
|
|
1907
|
+
}
|
|
1908
|
+
</script>
|
|
1909
|
+
</body>
|
|
1910
|
+
</html>
|