@7h3laughingman/foundry-types 13.351.0
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/LICENSE.md +21 -0
- package/README.md +3 -0
- package/package.json +76 -0
- package/src/client/_module.d.mts +103 -0
- package/src/client/_types.d.mts +900 -0
- package/src/client/applications/_module.d.mts +27 -0
- package/src/client/applications/_types.d.mts +192 -0
- package/src/client/applications/api/_module.d.mts +8 -0
- package/src/client/applications/api/application.d.mts +456 -0
- package/src/client/applications/api/category-browser.d.mts +78 -0
- package/src/client/applications/api/dialog.d.mts +213 -0
- package/src/client/applications/api/document-sheet.d.mts +148 -0
- package/src/client/applications/api/handlebars-application.d.mts +120 -0
- package/src/client/applications/apps/_module.d.mts +10 -0
- package/src/client/applications/apps/av/_module.d.mts +2 -0
- package/src/client/applications/apps/av/camera-popout.d.mts +53 -0
- package/src/client/applications/apps/av/cameras.d.mts +235 -0
- package/src/client/applications/apps/combat-tracker-config.d.mts +27 -0
- package/src/client/applications/apps/compendium-art-config.d.mts +17 -0
- package/src/client/applications/apps/document-ownership.d.mts +17 -0
- package/src/client/applications/apps/document-sheet-config.d.mts +144 -0
- package/src/client/applications/apps/file-picker.d.mts +321 -0
- package/src/client/applications/apps/grid-config.d.mts +33 -0
- package/src/client/applications/apps/image-popout.d.mts +92 -0
- package/src/client/applications/apps/permission-config.d.mts +24 -0
- package/src/client/applications/dice/_module.d.mts +1 -0
- package/src/client/applications/dice/roll-resolver.d.mts +92 -0
- package/src/client/applications/elements/_module.d.mts +19 -0
- package/src/client/applications/elements/codemirror/element.d.mts +73 -0
- package/src/client/applications/elements/color-picker.d.mts +14 -0
- package/src/client/applications/elements/document-embed.d.mts +14 -0
- package/src/client/applications/elements/document-tags.d.mts +50 -0
- package/src/client/applications/elements/enriched-content.d.mts +31 -0
- package/src/client/applications/elements/file-picker.d.mts +59 -0
- package/src/client/applications/elements/form-element.d.mts +105 -0
- package/src/client/applications/elements/hue-slider.d.mts +35 -0
- package/src/client/applications/elements/multi-select.d.mts +89 -0
- package/src/client/applications/elements/prosemirror-editor.d.mts +32 -0
- package/src/client/applications/elements/range-picker.d.mts +23 -0
- package/src/client/applications/elements/secret-block.d.mts +28 -0
- package/src/client/applications/elements/string-tags.d.mts +50 -0
- package/src/client/applications/forms/fields.d.mts +132 -0
- package/src/client/applications/handlebars.d.mts +303 -0
- package/src/client/applications/hud/_module.d.mts +5 -0
- package/src/client/applications/hud/container.d.mts +38 -0
- package/src/client/applications/hud/drawing-hud.d.mts +14 -0
- package/src/client/applications/hud/placeable-hud.d.mts +72 -0
- package/src/client/applications/hud/tile-hud.d.mts +21 -0
- package/src/client/applications/hud/token-hud.d.mts +69 -0
- package/src/client/applications/settings/_module.d.mts +2 -0
- package/src/client/applications/settings/config.d.mts +38 -0
- package/src/client/applications/settings/menus/_module.d.mts +6 -0
- package/src/client/applications/settings/menus/av-config.d.mts +37 -0
- package/src/client/applications/settings/menus/default-sheets-config.d.mts +23 -0
- package/src/client/applications/settings/menus/dice-config.d.mts +23 -0
- package/src/client/applications/settings/menus/font-config.d.mts +145 -0
- package/src/client/applications/settings/menus/prototype-overrides.d.mts +20 -0
- package/src/client/applications/settings/menus/ui-config.d.mts +40 -0
- package/src/client/applications/sheets/_module.d.mts +9 -0
- package/src/client/applications/sheets/combatant-config.d.mts +21 -0
- package/src/client/applications/sheets/item-sheet.d.mts +13 -0
- package/src/client/applications/sheets/scene-config.d.mts +50 -0
- package/src/client/applications/sheets/template-config.d.mts +19 -0
- package/src/client/applications/sheets/token/mixin.mts +182 -0
- package/src/client/applications/sheets/token/prototype-config.d.mts +75 -0
- package/src/client/applications/sheets/token/token-config.d.mts +62 -0
- package/src/client/applications/sheets/user-config.d.mts +27 -0
- package/src/client/applications/sidebar/_module.d.mts +5 -0
- package/src/client/applications/sidebar/apps/_module.d.mts +9 -0
- package/src/client/applications/sidebar/apps/chat-popout.d.mts +45 -0
- package/src/client/applications/sidebar/apps/compendium.d.mts +65 -0
- package/src/client/applications/sidebar/apps/controls-config.d.mts +29 -0
- package/src/client/applications/sidebar/apps/folder-export.d.mts +11 -0
- package/src/client/applications/sidebar/apps/invitation-links.d.mts +10 -0
- package/src/client/applications/sidebar/apps/module-management.d.mts +65 -0
- package/src/client/applications/sidebar/apps/support-details.d.mts +72 -0
- package/src/client/applications/sidebar/apps/tours-management.d.mts +16 -0
- package/src/client/applications/sidebar/apps/world-config.d.mts +38 -0
- package/src/client/applications/sidebar/document-directory.d.mts +327 -0
- package/src/client/applications/sidebar/sidebar-tab.d.mts +89 -0
- package/src/client/applications/sidebar/sidebar.d.mts +93 -0
- package/src/client/applications/sidebar/tabs/_module.d.mts +14 -0
- package/src/client/applications/sidebar/tabs/actor-directory.d.mts +26 -0
- package/src/client/applications/sidebar/tabs/cards-directory.d.mts +19 -0
- package/src/client/applications/sidebar/tabs/chat.d.mts +271 -0
- package/src/client/applications/sidebar/tabs/combat-tracker.d.mts +198 -0
- package/src/client/applications/sidebar/tabs/compendium-directory.d.mts +289 -0
- package/src/client/applications/sidebar/tabs/item-directory.d.mts +24 -0
- package/src/client/applications/sidebar/tabs/journal-directory.d.mts +19 -0
- package/src/client/applications/sidebar/tabs/macro-directory.d.mts +12 -0
- package/src/client/applications/sidebar/tabs/playlist-directory.d.mts +267 -0
- package/src/client/applications/sidebar/tabs/roll-table-directory.d.mts +19 -0
- package/src/client/applications/sidebar/tabs/scene-directory.d.mts +26 -0
- package/src/client/applications/sidebar/tabs/settings.d.mts +16 -0
- package/src/client/applications/ui/_module.d.mts +9 -0
- package/src/client/applications/ui/game-pause.d.mts +15 -0
- package/src/client/applications/ui/hotbar.d.mts +86 -0
- package/src/client/applications/ui/main-menu.d.mts +48 -0
- package/src/client/applications/ui/notifications.d.mts +168 -0
- package/src/client/applications/ui/players.d.mts +92 -0
- package/src/client/applications/ui/region-legend.d.mts +47 -0
- package/src/client/applications/ui/scene-controls.d.mts +138 -0
- package/src/client/applications/ui/scene-navigation.d.mts +61 -0
- package/src/client/applications/ux/_module.d.mts +11 -0
- package/src/client/applications/ux/context-menu.d.mts +202 -0
- package/src/client/applications/ux/drag-drop.d.mts +131 -0
- package/src/client/applications/ux/draggable.d.mts +108 -0
- package/src/client/applications/ux/form-data-extended.d.mts +76 -0
- package/src/client/applications/ux/html-secret.d.mts +61 -0
- package/src/client/applications/ux/prosemirror-editor.d.mts +173 -0
- package/src/client/applications/ux/search-filter.d.mts +119 -0
- package/src/client/applications/ux/tabs.d.mts +94 -0
- package/src/client/applications/ux/text-editor.d.mts +329 -0
- package/src/client/appv1/_module.d.mts +2 -0
- package/src/client/appv1/api/_module.d.mts +8 -0
- package/src/client/appv1/api/application-v1.d.mts +388 -0
- package/src/client/appv1/api/dialog-v1.d.mts +191 -0
- package/src/client/appv1/api/document-sheet-v1.d.mts +96 -0
- package/src/client/appv1/api/form-application-v1.d.mts +203 -0
- package/src/client/appv1/sheets/_module.d.mts +9 -0
- package/src/client/appv1/sheets/actor-sheet.d.mts +129 -0
- package/src/client/appv1/sheets/adventure-importer.d.mts +43 -0
- package/src/client/appv1/sheets/item-sheet.d.mts +42 -0
- package/src/client/appv1/sheets/journal-page-sheet.d.mts +100 -0
- package/src/client/appv1/sheets/journal-sheet.d.mts +262 -0
- package/src/client/audio/_module.d.mts +9 -0
- package/src/client/audio/_types.d.mts +121 -0
- package/src/client/audio/biquad.d.mts +29 -0
- package/src/client/audio/cache.d.mts +58 -0
- package/src/client/audio/convolver.d.mts +50 -0
- package/src/client/audio/helper.d.mts +306 -0
- package/src/client/audio/sound.d.mts +289 -0
- package/src/client/audio/timeout.d.mts +71 -0
- package/src/client/av/_module.d.mts +7 -0
- package/src/client/av/client.d.mts +167 -0
- package/src/client/av/clients/_module.d.mts +1 -0
- package/src/client/av/clients/simplepeer.d.mts +123 -0
- package/src/client/av/master.d.mts +128 -0
- package/src/client/av/settings.d.mts +100 -0
- package/src/client/canvas/_module.d.mts +20 -0
- package/src/client/canvas/animation/_module.d.mts +5 -0
- package/src/client/canvas/animation/_types.d.mts +73 -0
- package/src/client/canvas/animation/canvas-animation.d.mts +114 -0
- package/src/client/canvas/animation/chat-bubbles.d.mts +58 -0
- package/src/client/canvas/animation/smooth-noise.d.mts +34 -0
- package/src/client/canvas/board.d.mts +413 -0
- package/src/client/canvas/containers/_module.d.mts +20 -0
- package/src/client/canvas/containers/_types.d.mts +21 -0
- package/src/client/canvas/containers/advanced/cached-container.d.mts +108 -0
- package/src/client/canvas/containers/advanced/full-canvas-mixin.d.mts +12 -0
- package/src/client/canvas/containers/advanced/full-container-mixin.d.mts +12 -0
- package/src/client/canvas/containers/advanced/unbound-container.d.mts +12 -0
- package/src/client/canvas/containers/elements/control-icon.d.mts +40 -0
- package/src/client/canvas/containers/elements/cursor.d.mts +37 -0
- package/src/client/canvas/containers/elements/door-control.d.mts +66 -0
- package/src/client/canvas/containers/elements/door-mesh.d.mts +127 -0
- package/src/client/canvas/containers/elements/grid-highlight.d.mts +25 -0
- package/src/client/canvas/containers/elements/grid-mesh.d.mts +34 -0
- package/src/client/canvas/containers/elements/particles/leaves.d.mts +15 -0
- package/src/client/canvas/containers/elements/particles/particle-effect.d.mts +45 -0
- package/src/client/canvas/containers/elements/point-source-mesh.d.mts +29 -0
- package/src/client/canvas/containers/elements/precise-text.d.mts +18 -0
- package/src/client/canvas/containers/elements/quad-mesh.d.mts +41 -0
- package/src/client/canvas/containers/elements/resize-handle.d.mts +61 -0
- package/src/client/canvas/containers/elements/sprite-mesh.d.mts +319 -0
- package/src/client/canvas/extensions/_module.d.mts +4 -0
- package/src/client/canvas/extensions/circle-extension.d.mts +4 -0
- package/src/client/canvas/extensions/graphics-extension.d.mts +5 -0
- package/src/client/canvas/extensions/polygon-extension.d.mts +4 -0
- package/src/client/canvas/extensions/rectangle-extension.d.mts +4 -0
- package/src/client/canvas/framebuffer-snapshot.d.mts +20 -0
- package/src/client/canvas/geometry/_module.d.mts +12 -0
- package/src/client/canvas/geometry/_types.d.mts +90 -0
- package/src/client/canvas/geometry/clockwise-sweep.d.mts +129 -0
- package/src/client/canvas/geometry/edges/_module.d.mts +5 -0
- package/src/client/canvas/geometry/edges/collision.d.mts +58 -0
- package/src/client/canvas/geometry/edges/edge.d.mts +144 -0
- package/src/client/canvas/geometry/edges/edges.d.mts +14 -0
- package/src/client/canvas/geometry/edges/vertex.d.mts +85 -0
- package/src/client/canvas/geometry/observable-transform.d.mts +28 -0
- package/src/client/canvas/geometry/quad-tree.d.mts +150 -0
- package/src/client/canvas/geometry/shapes/limited-angle-polygon.d.mts +69 -0
- package/src/client/canvas/geometry/shapes/polygon-mesher.d.mts +50 -0
- package/src/client/canvas/geometry/shapes/ray.d.mts +126 -0
- package/src/client/canvas/geometry/shapes/source-polygon.d.mts +161 -0
- package/src/client/canvas/geometry/unbound-transform.d.mts +9 -0
- package/src/client/canvas/geometry/weiler-atherton-clipping.d.mts +120 -0
- package/src/client/canvas/groups/_module.d.mts +10 -0
- package/src/client/canvas/groups/canvas-group-mixin.mts +95 -0
- package/src/client/canvas/groups/effects.d.mts +118 -0
- package/src/client/canvas/groups/environment.d.mts +79 -0
- package/src/client/canvas/groups/hidden.d.mts +42 -0
- package/src/client/canvas/groups/interface.d.mts +31 -0
- package/src/client/canvas/groups/overlay.d.mts +11 -0
- package/src/client/canvas/groups/primary.d.mts +223 -0
- package/src/client/canvas/groups/rendered.d.mts +7 -0
- package/src/client/canvas/groups/visibility.d.mts +154 -0
- package/src/client/canvas/interaction/_module.d.mts +15 -0
- package/src/client/canvas/interaction/_types.d.mts +67 -0
- package/src/client/canvas/interaction/mouse-handler.d.mts +231 -0
- package/src/client/canvas/interaction/ping/alert.d.mts +16 -0
- package/src/client/canvas/interaction/ping/arrow.d.mts +16 -0
- package/src/client/canvas/interaction/ping/chevron.d.mts +25 -0
- package/src/client/canvas/interaction/ping/ping.d.mts +35 -0
- package/src/client/canvas/interaction/ping/pulse.d.mts +28 -0
- package/src/client/canvas/interaction/render-flags.d.mts +69 -0
- package/src/client/canvas/interaction/ruler/base-ruler.d.mts +179 -0
- package/src/client/canvas/interaction/ruler/ruler.d.mts +56 -0
- package/src/client/canvas/layers/_module.d.mts +31 -0
- package/src/client/canvas/layers/_types.d.mts +89 -0
- package/src/client/canvas/layers/base/canvas-layer.d.mts +71 -0
- package/src/client/canvas/layers/base/interaction-layer.d.mts +176 -0
- package/src/client/canvas/layers/base/placeables-layer.d.mts +410 -0
- package/src/client/canvas/layers/controls.d.mts +181 -0
- package/src/client/canvas/layers/drawings.d.mts +75 -0
- package/src/client/canvas/layers/effects/background-effects.d.mts +32 -0
- package/src/client/canvas/layers/effects/coloration-effects.d.mts +23 -0
- package/src/client/canvas/layers/effects/darkness-effects.d.mts +14 -0
- package/src/client/canvas/layers/effects/illumination-effects.d.mts +72 -0
- package/src/client/canvas/layers/effects/weather-effects.d.mts +137 -0
- package/src/client/canvas/layers/grid.d.mts +112 -0
- package/src/client/canvas/layers/lighting.d.mts +59 -0
- package/src/client/canvas/layers/masks/depth.d.mts +53 -0
- package/src/client/canvas/layers/masks/occlusion.d.mts +84 -0
- package/src/client/canvas/layers/masks/vision.d.mts +44 -0
- package/src/client/canvas/layers/notes.d.mts +59 -0
- package/src/client/canvas/layers/regions.d.mts +70 -0
- package/src/client/canvas/layers/sounds.d.mts +190 -0
- package/src/client/canvas/layers/templates.d.mts +41 -0
- package/src/client/canvas/layers/tiles.d.mts +66 -0
- package/src/client/canvas/layers/tokens.d.mts +171 -0
- package/src/client/canvas/layers/walls.d.mts +99 -0
- package/src/client/canvas/loader.d.mts +135 -0
- package/src/client/canvas/perception/_module.d.mts +13 -0
- package/src/client/canvas/perception/_types.d.mts +61 -0
- package/src/client/canvas/perception/detection-mode.d.mts +122 -0
- package/src/client/canvas/perception/detection-modes/darkvision.d.mts +11 -0
- package/src/client/canvas/perception/detection-modes/invisibility-perception.d.mts +15 -0
- package/src/client/canvas/perception/detection-modes/light-perception.d.mts +18 -0
- package/src/client/canvas/perception/detection-modes/super-perception.d.mts +13 -0
- package/src/client/canvas/perception/detection-modes/tremor-perception.d.mts +13 -0
- package/src/client/canvas/perception/fog.d.mts +65 -0
- package/src/client/canvas/perception/perception-manager.d.mts +72 -0
- package/src/client/canvas/perception/vision-mode.d.mts +133 -0
- package/src/client/canvas/placeables/_module.d.mts +15 -0
- package/src/client/canvas/placeables/_types.d.mts +29 -0
- package/src/client/canvas/placeables/drawing.d.mts +106 -0
- package/src/client/canvas/placeables/light.d.mts +155 -0
- package/src/client/canvas/placeables/note.d.mts +61 -0
- package/src/client/canvas/placeables/placeable-object.d.mts +415 -0
- package/src/client/canvas/placeables/region.d.mts +129 -0
- package/src/client/canvas/placeables/regions/_module.d.mts +2 -0
- package/src/client/canvas/placeables/regions/geometry.d.mts +19 -0
- package/src/client/canvas/placeables/regions/mesh.d.mts +72 -0
- package/src/client/canvas/placeables/sound.d.mts +93 -0
- package/src/client/canvas/placeables/template.d.mts +164 -0
- package/src/client/canvas/placeables/tile.d.mts +189 -0
- package/src/client/canvas/placeables/token.d.mts +675 -0
- package/src/client/canvas/placeables/tokens/_module.d.mts +8 -0
- package/src/client/canvas/placeables/tokens/base-ruler.d.mts +68 -0
- package/src/client/canvas/placeables/tokens/ring-config.d.mts +201 -0
- package/src/client/canvas/placeables/tokens/ring-data.d.mts +56 -0
- package/src/client/canvas/placeables/tokens/ring.d.mts +194 -0
- package/src/client/canvas/placeables/tokens/ruler.d.mts +96 -0
- package/src/client/canvas/placeables/tokens/targets.d.mts +22 -0
- package/src/client/canvas/placeables/tokens/turn-marker-data.d.mts +52 -0
- package/src/client/canvas/placeables/tokens/turn-marker.d.mts +45 -0
- package/src/client/canvas/placeables/wall.d.mts +155 -0
- package/src/client/canvas/primary/_module.d.mts +7 -0
- package/src/client/canvas/primary/primary-canvas-container.d.mts +40 -0
- package/src/client/canvas/primary/primary-canvas-object.mts +215 -0
- package/src/client/canvas/primary/primary-graphics.d.mts +22 -0
- package/src/client/canvas/primary/primary-occludable-object.mts +139 -0
- package/src/client/canvas/primary/primary-particle-effect.d.mts +50 -0
- package/src/client/canvas/primary/primary-sprite-mesh.d.mts +127 -0
- package/src/client/canvas/rendering/_module.d.mts +5 -0
- package/src/client/canvas/rendering/batching/_module.d.mts +2 -0
- package/src/client/canvas/rendering/batching/batch-renderer.d.mts +71 -0
- package/src/client/canvas/rendering/batching/batch-shader-generator.d.mts +13 -0
- package/src/client/canvas/rendering/blend-modes.d.mts +37 -0
- package/src/client/canvas/rendering/filters/_module.d.mts +13 -0
- package/src/client/canvas/rendering/filters/base-filter.d.mts +28 -0
- package/src/client/canvas/rendering/filters/base-mask-filter.d.mts +14 -0
- package/src/client/canvas/rendering/filters/blur.d.mts +152 -0
- package/src/client/canvas/rendering/filters/effects-masking.d.mts +84 -0
- package/src/client/canvas/rendering/filters/environment.d.mts +22 -0
- package/src/client/canvas/rendering/filters/glow-overlay.d.mts +41 -0
- package/src/client/canvas/rendering/filters/invisibility.d.mts +11 -0
- package/src/client/canvas/rendering/filters/outline-overlay.d.mts +43 -0
- package/src/client/canvas/rendering/filters/smaa/_module.d.mts +4 -0
- package/src/client/canvas/rendering/filters/smaa/blend.d.mts +6 -0
- package/src/client/canvas/rendering/filters/smaa/edges.d.mts +11 -0
- package/src/client/canvas/rendering/filters/smaa/smaa.d.mts +102 -0
- package/src/client/canvas/rendering/filters/smaa/weights.d.mts +11 -0
- package/src/client/canvas/rendering/filters/transition.d.mts +97 -0
- package/src/client/canvas/rendering/filters/visibility.d.mts +46 -0
- package/src/client/canvas/rendering/filters/vision-mask-filter.d.mts +15 -0
- package/src/client/canvas/rendering/filters/void.d.mts +6 -0
- package/src/client/canvas/rendering/filters/weather-occlusion-mask.d.mts +30 -0
- package/src/client/canvas/rendering/mixins/_module.d.mts +2 -0
- package/src/client/canvas/rendering/mixins/base-shader-mixin.d.mts +118 -0
- package/src/client/canvas/rendering/mixins/fragment-channel-mixin.d.mts +21 -0
- package/src/client/canvas/rendering/shaders/_module.d.mts +80 -0
- package/src/client/canvas/rendering/shaders/_types.d.mts +98 -0
- package/src/client/canvas/rendering/shaders/base-shader.d.mts +58 -0
- package/src/client/canvas/rendering/shaders/graphics/dash-line.d.mts +13 -0
- package/src/client/canvas/rendering/shaders/grid/grid.d.mts +99 -0
- package/src/client/canvas/rendering/shaders/lighting/background-lighting.d.mts +50 -0
- package/src/client/canvas/rendering/shaders/lighting/base-lighting.d.mts +164 -0
- package/src/client/canvas/rendering/shaders/lighting/coloration-lighting.d.mts +48 -0
- package/src/client/canvas/rendering/shaders/lighting/darkness-lighting.d.mts +45 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/bewitching-wave.d.mts +10 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/black-hole.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/chroma.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/emanation.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/energy-field.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/fairy-light.d.mts +10 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/flame.d.mts +75 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/fog.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/force-grid.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/ghost-light.d.mts +10 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/hexa-dome.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/light-dome.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/magical-gloom.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/pulse.d.mts +41 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/radial-rainbow.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/revolving-light.d.mts +38 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/roiling-mass.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/siren-light.d.mts +80 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/smoke-patch.d.mts +10 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/star-light.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/sunburst.d.mts +10 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/swirling-rainbow.d.mts +5 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/torch.d.mts +41 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/vortex.d.mts +10 -0
- package/src/client/canvas/rendering/shaders/lighting/effects/wave.d.mts +10 -0
- package/src/client/canvas/rendering/shaders/lighting/illumination-lighting.d.mts +51 -0
- package/src/client/canvas/rendering/shaders/region/adjust-darkness-level.d.mts +58 -0
- package/src/client/canvas/rendering/shaders/region/base.d.mts +20 -0
- package/src/client/canvas/rendering/shaders/region/highlight.d.mts +18 -0
- package/src/client/canvas/rendering/shaders/samplers/amplification.d.mts +30 -0
- package/src/client/canvas/rendering/shaders/samplers/base-sampler.d.mts +141 -0
- package/src/client/canvas/rendering/shaders/samplers/baseline-illumination.d.mts +15 -0
- package/src/client/canvas/rendering/shaders/samplers/color-adjustments.d.mts +36 -0
- package/src/client/canvas/rendering/shaders/samplers/colorize-brightness.d.mts +17 -0
- package/src/client/canvas/rendering/shaders/samplers/fog-of-war.d.mts +9 -0
- package/src/client/canvas/rendering/shaders/samplers/primary/depth.d.mts +66 -0
- package/src/client/canvas/rendering/shaders/samplers/primary/occlusion.d.mts +77 -0
- package/src/client/canvas/rendering/shaders/samplers/primary/primary.d.mts +28 -0
- package/src/client/canvas/rendering/shaders/samplers/primary/token-ring.d.mts +33 -0
- package/src/client/canvas/rendering/shaders/vision/background-vision.d.mts +47 -0
- package/src/client/canvas/rendering/shaders/vision/base-vision.d.mts +11 -0
- package/src/client/canvas/rendering/shaders/vision/coloration-vision.d.mts +43 -0
- package/src/client/canvas/rendering/shaders/vision/effects/amplification.d.mts +35 -0
- package/src/client/canvas/rendering/shaders/vision/effects/wave.d.mts +10 -0
- package/src/client/canvas/rendering/shaders/vision/illumination-vision.d.mts +45 -0
- package/src/client/canvas/rendering/shaders/weather/base-weather.d.mts +87 -0
- package/src/client/canvas/rendering/shaders/weather/effect.d.mts +27 -0
- package/src/client/canvas/rendering/shaders/weather/fog.d.mts +26 -0
- package/src/client/canvas/rendering/shaders/weather/rain.d.mts +16 -0
- package/src/client/canvas/rendering/shaders/weather/snow.d.mts +12 -0
- package/src/client/canvas/scene-manager.d.mts +101 -0
- package/src/client/canvas/sources/_module.d.mts +10 -0
- package/src/client/canvas/sources/base-effect-source.d.mts +179 -0
- package/src/client/canvas/sources/base-light-source.d.mts +141 -0
- package/src/client/canvas/sources/global-light-source.d.mts +36 -0
- package/src/client/canvas/sources/point-darkness-source.d.mts +87 -0
- package/src/client/canvas/sources/point-effect-source.d.mts +105 -0
- package/src/client/canvas/sources/point-light-source.d.mts +54 -0
- package/src/client/canvas/sources/point-movement-source.d.mts +10 -0
- package/src/client/canvas/sources/point-sound-source.d.mts +29 -0
- package/src/client/canvas/sources/point-vision-source.d.mts +151 -0
- package/src/client/canvas/sources/rendered-effect-source.d.mts +214 -0
- package/src/client/canvas/texture-extractor.d.mts +98 -0
- package/src/client/canvas/workers/_module.d.mts +1 -0
- package/src/client/canvas/workers/texture-worker.d.mts +73 -0
- package/src/client/client.d.mts +15 -0
- package/src/client/config.d.mts +868 -0
- package/src/client/data/_module.d.mts +11 -0
- package/src/client/data/_types.d.mts +97 -0
- package/src/client/data/calendar.d.mts +175 -0
- package/src/client/data/client-backend.d.mts +82 -0
- package/src/client/data/combat-config.d.mts +84 -0
- package/src/client/data/region-behaviors/_module.d.mts +9 -0
- package/src/client/data/region-behaviors/adjust-darkness-level.d.mts +29 -0
- package/src/client/data/region-behaviors/base.d.mts +70 -0
- package/src/client/data/region-behaviors/execute-macro.d.mts +17 -0
- package/src/client/data/region-behaviors/execute-script.d.mts +15 -0
- package/src/client/data/region-behaviors/increase-movement-cost.d.mts +36 -0
- package/src/client/data/region-behaviors/pause-game.d.mts +15 -0
- package/src/client/data/region-behaviors/suppress-weather.d.mts +13 -0
- package/src/client/data/region-behaviors/teleport-token.d.mts +27 -0
- package/src/client/data/region-behaviors/toggle-behavior.d.mts +19 -0
- package/src/client/data/region-shapes/_module.d.mts +2 -0
- package/src/client/data/region-shapes/polygon-tree.d.mts +101 -0
- package/src/client/data/region-shapes/shape.d.mts +97 -0
- package/src/client/data/terrain-data.d.mts +70 -0
- package/src/client/dice/_module.d.mts +14 -0
- package/src/client/dice/_types.d.mts +89 -0
- package/src/client/dice/parser.d.mts +83 -0
- package/src/client/dice/roll.d.mts +542 -0
- package/src/client/dice/terms/_module.d.mts +16 -0
- package/src/client/dice/terms/_types.d.mts +10 -0
- package/src/client/dice/terms/coin.d.mts +35 -0
- package/src/client/dice/terms/dice.d.mts +263 -0
- package/src/client/dice/terms/die.d.mts +199 -0
- package/src/client/dice/terms/fate.d.mts +22 -0
- package/src/client/dice/terms/function.d.mts +60 -0
- package/src/client/dice/terms/numeric.d.mts +39 -0
- package/src/client/dice/terms/operator.d.mts +28 -0
- package/src/client/dice/terms/parenthetical.d.mts +70 -0
- package/src/client/dice/terms/pool.d.mts +170 -0
- package/src/client/dice/terms/string.d.mts +23 -0
- package/src/client/dice/terms/term.d.mts +135 -0
- package/src/client/dice/twister.d.mts +87 -0
- package/src/client/documents/_module.d.mts +70 -0
- package/src/client/documents/_types.d.mts +736 -0
- package/src/client/documents/abstract/_module.d.mts +6 -0
- package/src/client/documents/abstract/canvas-document.d.mts +65 -0
- package/src/client/documents/abstract/client-document.d.mts +545 -0
- package/src/client/documents/abstract/directory-collection-mixin.d.mts +79 -0
- package/src/client/documents/abstract/document-collection.d.mts +124 -0
- package/src/client/documents/abstract/world-collection.d.mts +157 -0
- package/src/client/documents/active-effect.d.mts +203 -0
- package/src/client/documents/actor-delta.d.mts +76 -0
- package/src/client/documents/actor.d.mts +269 -0
- package/src/client/documents/adventure.d.mts +38 -0
- package/src/client/documents/ambient-light.d.mts +34 -0
- package/src/client/documents/ambient-sound.d.mts +16 -0
- package/src/client/documents/card.d.mts +102 -0
- package/src/client/documents/cards.d.mts +38 -0
- package/src/client/documents/chat-message.d.mts +190 -0
- package/src/client/documents/collections/_module.d.mts +19 -0
- package/src/client/documents/collections/actors.d.mts +28 -0
- package/src/client/documents/collections/card-stacks.d.mts +14 -0
- package/src/client/documents/collections/chat-messages.d.mts +29 -0
- package/src/client/documents/collections/combat-encounters.d.mts +32 -0
- package/src/client/documents/collections/compendium-collection.d.mts +170 -0
- package/src/client/documents/collections/compendium-folders.d.mts +30 -0
- package/src/client/documents/collections/compendium-packs.d.mts +23 -0
- package/src/client/documents/collections/fog-explorations.d.mts +19 -0
- package/src/client/documents/collections/folders.d.mts +20 -0
- package/src/client/documents/collections/items.d.mts +13 -0
- package/src/client/documents/collections/journal.d.mts +24 -0
- package/src/client/documents/collections/macros.d.mts +15 -0
- package/src/client/documents/collections/playlists.d.mts +28 -0
- package/src/client/documents/collections/roll-tables.d.mts +20 -0
- package/src/client/documents/collections/scenes.d.mts +60 -0
- package/src/client/documents/collections/users.d.mts +57 -0
- package/src/client/documents/collections/world-settings.d.mts +34 -0
- package/src/client/documents/combat.d.mts +371 -0
- package/src/client/documents/combatant-group.d.mts +42 -0
- package/src/client/documents/combatant.d.mts +125 -0
- package/src/client/documents/drawing.d.mts +27 -0
- package/src/client/documents/fog-exploration.d.mts +30 -0
- package/src/client/documents/folder.d.mts +124 -0
- package/src/client/documents/item.d.mts +73 -0
- package/src/client/documents/journal-entry-category.d.mts +15 -0
- package/src/client/documents/journal-entry-page.d.mts +77 -0
- package/src/client/documents/journal-entry.d.mts +78 -0
- package/src/client/documents/macro.d.mts +56 -0
- package/src/client/documents/measured-template.d.mts +41 -0
- package/src/client/documents/note.d.mts +28 -0
- package/src/client/documents/playlist-sound.d.mts +107 -0
- package/src/client/documents/playlist.d.mts +163 -0
- package/src/client/documents/region-behavior.d.mts +55 -0
- package/src/client/documents/region.d.mts +98 -0
- package/src/client/documents/roll-table.d.mts +172 -0
- package/src/client/documents/scene.d.mts +282 -0
- package/src/client/documents/setting.d.mts +35 -0
- package/src/client/documents/table-result.d.mts +35 -0
- package/src/client/documents/tile.d.mts +22 -0
- package/src/client/documents/token.d.mts +621 -0
- package/src/client/documents/user.d.mts +148 -0
- package/src/client/documents/wall.d.mts +20 -0
- package/src/client/game.d.mts +231 -0
- package/src/client/global.d.mts +28 -0
- package/src/client/helpers/_module.d.mts +13 -0
- package/src/client/helpers/_types.d.mts +26 -0
- package/src/client/helpers/client-issues.d.mts +90 -0
- package/src/client/helpers/client-settings.d.mts +191 -0
- package/src/client/helpers/document-index.d.mts +81 -0
- package/src/client/helpers/hooks.d.mts +210 -0
- package/src/client/helpers/interaction/_module.d.mts +6 -0
- package/src/client/helpers/interaction/client-keybindings.d.mts +143 -0
- package/src/client/helpers/interaction/clipboard-helper.d.mts +14 -0
- package/src/client/helpers/interaction/gamepad-manager.d.mts +15 -0
- package/src/client/helpers/interaction/keyboard-manager.d.mts +189 -0
- package/src/client/helpers/interaction/mouse-manager.d.mts +20 -0
- package/src/client/helpers/interaction/tooltip-manager.d.mts +227 -0
- package/src/client/helpers/localization.d.mts +143 -0
- package/src/client/helpers/media/_module.d.mts +3 -0
- package/src/client/helpers/media/compendium-art.d.mts +29 -0
- package/src/client/helpers/media/image-helper.d.mts +116 -0
- package/src/client/helpers/media/video-helper.d.mts +113 -0
- package/src/client/helpers/socket-interface.d.mts +14 -0
- package/src/client/helpers/time.d.mts +92 -0
- package/src/client/helpers/workers.d.mts +92 -0
- package/src/client/nue/_module.d.mts +13 -0
- package/src/client/nue/nue-manager.d.mts +13 -0
- package/src/client/nue/tour.d.mts +283 -0
- package/src/client/nue/tours/_module.d.mts +1 -0
- package/src/client/nue/tours-collection.d.mts +23 -0
- package/src/client/packages/_module.d.mts +19 -0
- package/src/client/packages/_types.d.mts +12 -0
- package/src/client/packages/client-package.mts +145 -0
- package/src/client/packages/module.d.mts +12 -0
- package/src/client/packages/system.d.mts +9 -0
- package/src/client/packages/world.d.mts +28 -0
- package/src/client/ui.d.mts +86 -0
- package/src/client/utils/_module.d.mts +4 -0
- package/src/client/utils/helpers.d.mts +148 -0
- package/src/common/_types.d.mts +151 -0
- package/src/common/abstract/_module.d.mts +8 -0
- package/src/common/abstract/_types.d.mts +187 -0
- package/src/common/abstract/backend.d.mts +159 -0
- package/src/common/abstract/data.d.mts +213 -0
- package/src/common/abstract/document.d.mts +700 -0
- package/src/common/abstract/embedded-collection.d.mts +141 -0
- package/src/common/abstract/socket.d.mts +35 -0
- package/src/common/abstract/type-data.d.mts +163 -0
- package/src/common/config.d.mts +147 -0
- package/src/common/constants.d.mts +2184 -0
- package/src/common/data/_module.d.mts +6 -0
- package/src/common/data/_types.d.mts +329 -0
- package/src/common/data/data.d.mts +390 -0
- package/src/common/data/fields.d.mts +1377 -0
- package/src/common/data/validation-failure.d.mts +127 -0
- package/src/common/data/validators.d.mts +35 -0
- package/src/common/documents/_module.d.mts +64 -0
- package/src/common/documents/_types.d.mts +1 -0
- package/src/common/documents/active-effect.d.mts +87 -0
- package/src/common/documents/actor-delta.d.mts +81 -0
- package/src/common/documents/actor.d.mts +105 -0
- package/src/common/documents/adventure.d.mts +105 -0
- package/src/common/documents/ambient-light.d.mts +49 -0
- package/src/common/documents/ambient-sound.d.mts +72 -0
- package/src/common/documents/card.d.mts +98 -0
- package/src/common/documents/cards.d.mts +89 -0
- package/src/common/documents/chat-message.d.mts +107 -0
- package/src/common/documents/combat.d.mts +55 -0
- package/src/common/documents/combatant-group.d.mts +45 -0
- package/src/common/documents/combatant.d.mts +48 -0
- package/src/common/documents/drawing.d.mts +101 -0
- package/src/common/documents/fog-exploration.d.mts +50 -0
- package/src/common/documents/folder.d.mts +65 -0
- package/src/common/documents/item.d.mts +86 -0
- package/src/common/documents/journal-entry-category.d.mts +32 -0
- package/src/common/documents/journal-entry-page.d.mts +76 -0
- package/src/common/documents/journal-entry.d.mts +50 -0
- package/src/common/documents/macro.d.mts +87 -0
- package/src/common/documents/measured-template.d.mts +72 -0
- package/src/common/documents/note.d.mts +82 -0
- package/src/common/documents/playlist-sound.d.mts +53 -0
- package/src/common/documents/playlist.d.mts +48 -0
- package/src/common/documents/region-behavior.d.mts +49 -0
- package/src/common/documents/region.d.mts +61 -0
- package/src/common/documents/roll-table.d.mts +70 -0
- package/src/common/documents/scene.d.mts +237 -0
- package/src/common/documents/setting.d.mts +49 -0
- package/src/common/documents/table-result.d.mts +61 -0
- package/src/common/documents/tile.d.mts +88 -0
- package/src/common/documents/token.d.mts +213 -0
- package/src/common/documents/user.d.mts +82 -0
- package/src/common/documents/wall.d.mts +72 -0
- package/src/common/grid/_module.d.mts +6 -0
- package/src/common/grid/_types.d.mts +250 -0
- package/src/common/grid/base.d.mts +266 -0
- package/src/common/grid/grid-hex.d.mts +53 -0
- package/src/common/grid/gridless.d.mts +85 -0
- package/src/common/grid/hexagonal.d.mts +191 -0
- package/src/common/grid/square.d.mts +90 -0
- package/src/common/packages/_module.d.mts +6 -0
- package/src/common/packages/_types.d.mts +7 -0
- package/src/common/packages/base-module.d.mts +32 -0
- package/src/common/packages/base-package.d.mts +297 -0
- package/src/common/packages/base-system.d.mts +42 -0
- package/src/common/packages/base-world.d.mts +51 -0
- package/src/common/packages/sub-types.d.mts +12 -0
- package/src/common/primitives/_module.d.mts +10 -0
- package/src/common/primitives/array.d.mts +58 -0
- package/src/common/primitives/date.d.mts +24 -0
- package/src/common/primitives/math.d.mts +70 -0
- package/src/common/primitives/number.d.mts +79 -0
- package/src/common/primitives/regexp.d.mts +12 -0
- package/src/common/primitives/set.d.mts +129 -0
- package/src/common/primitives/string.d.mts +24 -0
- package/src/common/primitives/url.d.mts +12 -0
- package/src/common/prosemirror/_module.d.mts +77 -0
- package/src/common/prosemirror/_types.d.mts +75 -0
- package/src/common/prosemirror/click-handler.d.mts +24 -0
- package/src/common/prosemirror/content-link-plugin.d.mts +34 -0
- package/src/common/prosemirror/dirty-plugin.d.mts +10 -0
- package/src/common/prosemirror/dom-parser.d.mts +7 -0
- package/src/common/prosemirror/dropdown.d.mts +50 -0
- package/src/common/prosemirror/highlight-matches-plugin.d.mts +38 -0
- package/src/common/prosemirror/image-plugin.d.mts +70 -0
- package/src/common/prosemirror/input-rules.d.mts +24 -0
- package/src/common/prosemirror/keymaps.d.mts +27 -0
- package/src/common/prosemirror/menu.d.mts +206 -0
- package/src/common/prosemirror/paste-transformer.d.mts +10 -0
- package/src/common/prosemirror/plugin.d.mts +21 -0
- package/src/common/prosemirror/schema/_types.d.mts +15 -0
- package/src/common/prosemirror/schema/attribute-capture.d.mts +13 -0
- package/src/common/prosemirror/schema/core.d.mts +58 -0
- package/src/common/prosemirror/schema/image-link-node.d.mts +27 -0
- package/src/common/prosemirror/schema/image-node.d.mts +17 -0
- package/src/common/prosemirror/schema/link-mark.d.mts +29 -0
- package/src/common/prosemirror/schema/lists.d.mts +71 -0
- package/src/common/prosemirror/schema/marks.d.mts +49 -0
- package/src/common/prosemirror/schema/other.d.mts +161 -0
- package/src/common/prosemirror/schema/schema-definition.d.mts +43 -0
- package/src/common/prosemirror/schema/secret-node.d.mts +25 -0
- package/src/common/prosemirror/schema/tables.d.mts +161 -0
- package/src/common/prosemirror/schema/utils.d.mts +37 -0
- package/src/common/prosemirror/schema.d.mts +7 -0
- package/src/common/prosemirror/string-serializer.d.mts +84 -0
- package/src/common/prosemirror/util.d.mts +32 -0
- package/src/common/utils/_module.d.mts +19 -0
- package/src/common/utils/_types.d.mts +83 -0
- package/src/common/utils/bitmask.d.mts +122 -0
- package/src/common/utils/collection.d.mts +148 -0
- package/src/common/utils/color.d.mts +308 -0
- package/src/common/utils/event-emitter.d.mts +36 -0
- package/src/common/utils/geometry.d.mts +94 -0
- package/src/common/utils/helpers.d.mts +396 -0
- package/src/common/utils/http.d.mts +40 -0
- package/src/common/utils/iterable-weak-map.d.mts +26 -0
- package/src/common/utils/iterable-weak-set.d.mts +1 -0
- package/src/common/utils/logging.d.mts +25 -0
- package/src/common/utils/semaphore.d.mts +59 -0
- package/src/common/utils/string-tree.d.mts +60 -0
- package/src/common/utils/word-tree.d.mts +34 -0
- package/src/global-external.d.mts +48 -0
- package/src/index.d.ts +87 -0
- package/src/public/scripts/clipper.d.mts +920 -0
- package/src/tinymce-stub.d.mts +123 -0
- package/src/util.d.mts +67 -0
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import { ElevatedPoint, Point, Rectangle } from "../_types.mjs";
|
|
2
|
+
import { GridType, MovementDirection } from "./../constants.mjs";
|
|
3
|
+
import {
|
|
4
|
+
GridConfiguration,
|
|
5
|
+
GridCoordinates2D,
|
|
6
|
+
GridCoordinates3D,
|
|
7
|
+
GridMeasurePathCostFunction2D,
|
|
8
|
+
GridMeasurePathCostFunction3D,
|
|
9
|
+
GridMeasurePathResult,
|
|
10
|
+
GridMeasurePathWaypointData2D,
|
|
11
|
+
GridMeasurePathWaypointData3D,
|
|
12
|
+
GridOffset2D,
|
|
13
|
+
GridOffset3D,
|
|
14
|
+
GridSnappingBehavior,
|
|
15
|
+
} from "./_types.mjs";
|
|
16
|
+
|
|
17
|
+
/** The base grid class. */
|
|
18
|
+
export abstract class BaseGrid {
|
|
19
|
+
/** The size of a grid space in pixels. */
|
|
20
|
+
size: number;
|
|
21
|
+
|
|
22
|
+
/** The width of a grid space in pixels. */
|
|
23
|
+
sizeX: number;
|
|
24
|
+
|
|
25
|
+
/** The height of a grid space in pixels. */
|
|
26
|
+
sizeY: number;
|
|
27
|
+
|
|
28
|
+
/** The distance of a grid space in units. */
|
|
29
|
+
distance: number;
|
|
30
|
+
|
|
31
|
+
/** The distance units used in this grid. */
|
|
32
|
+
units: string;
|
|
33
|
+
|
|
34
|
+
/** The style of the grid. */
|
|
35
|
+
style: string;
|
|
36
|
+
|
|
37
|
+
/** The thickness of the grid. */
|
|
38
|
+
thickness: number;
|
|
39
|
+
|
|
40
|
+
/** The color of the grid. */
|
|
41
|
+
color: Color;
|
|
42
|
+
|
|
43
|
+
/** The opacity of the grid. */
|
|
44
|
+
alpha: number;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The base grid constructor.
|
|
48
|
+
* @param config The grid configuration
|
|
49
|
+
*/
|
|
50
|
+
constructor(config: GridConfiguration);
|
|
51
|
+
|
|
52
|
+
/** The grid type (see {@link CONST.GRID_TYPES}). */
|
|
53
|
+
abstract readonly type: GridType;
|
|
54
|
+
|
|
55
|
+
/** Is this a gridless grid? */
|
|
56
|
+
get isGridless(): boolean;
|
|
57
|
+
|
|
58
|
+
/** Is this a square grid? */
|
|
59
|
+
get isSquare(): boolean;
|
|
60
|
+
|
|
61
|
+
/** Is this a hexagonal grid? */
|
|
62
|
+
get isHexagonal(): boolean;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Calculate the total size of the canvas with padding applied, as well as the top-left coordinates of the inner
|
|
66
|
+
* rectangle that houses the scene.
|
|
67
|
+
* @param sceneWidth The width of the scene.
|
|
68
|
+
* @param sceneHeight The height of the scene.
|
|
69
|
+
* @param padding The percentage of padding.
|
|
70
|
+
*/
|
|
71
|
+
abstract calculateDimensions(
|
|
72
|
+
sceneWidth: number,
|
|
73
|
+
sceneHeight: number,
|
|
74
|
+
padding: number,
|
|
75
|
+
): { width: number; height: number; x: number; y: number; rows: number; columns: number };
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Returns the offset of the grid space corresponding to the given coordinates.
|
|
79
|
+
* @param coords The coordinates
|
|
80
|
+
* @returns The offset
|
|
81
|
+
*/
|
|
82
|
+
abstract getOffset(coords: GridCoordinates2D): GridOffset2D;
|
|
83
|
+
abstract getOffset(coords: GridCoordinates3D): GridOffset3D;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Returns the smallest possible range containing the offsets of all grid spaces that intersect the given bounds.
|
|
87
|
+
* If the bounds are empty (nonpositive width or height), then the offset range is empty.
|
|
88
|
+
* @example
|
|
89
|
+
* ```js
|
|
90
|
+
* const [i0, j0, i1, j1] = grid.getOffsetRange(bounds);
|
|
91
|
+
* for ( let i = i0; i < i1; i++ ) {
|
|
92
|
+
* for ( let j = j0; j < j1; j++ ) {
|
|
93
|
+
* const offset = {i, j};
|
|
94
|
+
* // ...
|
|
95
|
+
* }
|
|
96
|
+
* }
|
|
97
|
+
* ```
|
|
98
|
+
* @param bounds The bounds
|
|
99
|
+
* @returns The offset range as [i0, j0, i1, j1]
|
|
100
|
+
*/
|
|
101
|
+
abstract getOffsetRange(bounds: Rectangle): [number, number, number, number];
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Returns the offsets of the grid spaces adjacent to the one corresponding to the given coordinates.
|
|
105
|
+
* Returns an empty array in gridless grids.
|
|
106
|
+
* @param coords The coordinates
|
|
107
|
+
* @returns The adjacent offsets
|
|
108
|
+
*/
|
|
109
|
+
abstract getAdjacentOffsets(coords: GridCoordinates2D): GridOffset2D[];
|
|
110
|
+
abstract getAdjacentOffsets(coords: GridCoordinates3D): GridOffset3D[];
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Returns true if the grid spaces corresponding to the given coordinates are adjacent to each other.
|
|
114
|
+
* In square grids with illegal diagonals the diagonally neighboring grid spaces are not adjacent.
|
|
115
|
+
* Returns false in gridless grids.
|
|
116
|
+
* @param coords1 The first coordinates
|
|
117
|
+
* @param coords2 The second coordinates
|
|
118
|
+
*/
|
|
119
|
+
abstract testAdjacency(coords1: GridCoordinates2D, coords2: GridCoordinates2D): boolean;
|
|
120
|
+
abstract testAdjacency(coords1: GridCoordinates3D, coords2: GridCoordinates3D): boolean;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Returns the offset of the grid space corresponding to the given coordinates
|
|
124
|
+
* shifted by one grid space in the given direction.
|
|
125
|
+
* In square grids with illegal diagonals the offset of the given coordinates is returned
|
|
126
|
+
* if the direction is diagonal.
|
|
127
|
+
* @param coords The coordinates
|
|
128
|
+
* @param direction The direction (see {@link CONST.MOVEMENT_DIRECTIONS})
|
|
129
|
+
* @returns The offset
|
|
130
|
+
*/
|
|
131
|
+
abstract getShiftedOffset(coords: GridCoordinates2D, direction: MovementDirection): GridOffset2D;
|
|
132
|
+
abstract getShiftedOffset(coords: GridCoordinates3D, direction: MovementDirection): GridOffset3D;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Returns the point shifted by the difference between the grid space corresponding to the given coordinates
|
|
136
|
+
* and the shifted grid space in the given direction.
|
|
137
|
+
* In square grids with illegal diagonals the point is not shifted if the direction is diagonal.
|
|
138
|
+
* In gridless grids the point coordinates are shifted by the grid size.
|
|
139
|
+
* @param point The point that is to be shifted
|
|
140
|
+
* @param direction The direction (see {@link CONST.MOVEMENT_DIRECTIONS})
|
|
141
|
+
* @returns The shifted point
|
|
142
|
+
*/
|
|
143
|
+
abstract getShiftedPoint(point: Point, direction: MovementDirection): Point;
|
|
144
|
+
abstract getShiftedPoint(point: ElevatedPoint, direction: MovementDirection): ElevatedPoint;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Returns the top-left point of the grid space corresponding to the given coordinates.
|
|
148
|
+
* If given a point, the top-left point of the grid space that contains it is returned.
|
|
149
|
+
* In gridless grids a point with the same coordinates as the given point is returned.
|
|
150
|
+
* @param coords The coordinates
|
|
151
|
+
* @returns The top-left point
|
|
152
|
+
*/
|
|
153
|
+
abstract getTopLeftPoint(coords: GridCoordinates2D): Point;
|
|
154
|
+
abstract getTopLeftPoint(coords: GridCoordinates3D): ElevatedPoint;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Returns the center point of the grid space corresponding to the given coordinates.
|
|
158
|
+
* If given a point, the center point of the grid space that contains it is returned.
|
|
159
|
+
* In gridless grids a point with the same coordinates as the given point is returned.
|
|
160
|
+
* @param coords The coordinates
|
|
161
|
+
* @returns The center point
|
|
162
|
+
*/
|
|
163
|
+
abstract getCenterPoint(coords: GridCoordinates2D): Point;
|
|
164
|
+
abstract getCenterPoint(coords: GridCoordinates3D): ElevatedPoint;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Returns the points of the grid space shape relative to the center point.
|
|
168
|
+
* The points are returned in the same order as in {@link BaseGrid#getVertices}.
|
|
169
|
+
* In gridless grids an empty array is returned.
|
|
170
|
+
* @returns The points of the polygon
|
|
171
|
+
*/
|
|
172
|
+
abstract getShape(): Point[];
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Returns the vertices of the grid space corresponding to the given coordinates.
|
|
176
|
+
* The vertices are returned ordered in positive orientation with the first vertex
|
|
177
|
+
* being the top-left vertex in square grids, the top vertex in row-oriented
|
|
178
|
+
* hexagonal grids, and the left vertex in column-oriented hexagonal grids.
|
|
179
|
+
* In gridless grids an empty array is returned.
|
|
180
|
+
* @param coords The coordinates
|
|
181
|
+
* @returns The vertices
|
|
182
|
+
*/
|
|
183
|
+
abstract getVertices(coords: GridCoordinates2D): Point[];
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Snaps the given point to the grid.
|
|
187
|
+
* @param point The point that is to be snapped
|
|
188
|
+
* @param behavior The snapping behavior
|
|
189
|
+
* @returns The snapped point
|
|
190
|
+
*/
|
|
191
|
+
abstract getSnappedPoint(point: Point, behavior: GridSnappingBehavior): Point;
|
|
192
|
+
abstract getSnappedPoint(point: ElevatedPoint, behavior: GridSnappingBehavior): ElevatedPoint;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Measure a shortest, direct path through the given waypoints.
|
|
196
|
+
* @param waypoints The waypoints the path must pass through
|
|
197
|
+
* @param [options] Additional measurement options
|
|
198
|
+
* @param [options.cost] The function that returns the cost for a given move between grid spaces
|
|
199
|
+
* (default is the distance travelled along the direct path)
|
|
200
|
+
* @returns The measurements a shortest, direct path through the given waypoints.
|
|
201
|
+
*/
|
|
202
|
+
measurePath(
|
|
203
|
+
waypoints: (GridCoordinates2D & Partial<GridMeasurePathWaypointData2D>)[],
|
|
204
|
+
options?: { cost?: GridMeasurePathCostFunction2D },
|
|
205
|
+
): GridMeasurePathResult;
|
|
206
|
+
measurePath(waypoints: GridMeasurePathWaypointData3D[], options?: { cost?: GridMeasurePathCostFunction3D }): GridMeasurePathResult;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Measures the path and writes the measurements into `result`.
|
|
210
|
+
* Called by {@link BaseGrid#measurePath}.
|
|
211
|
+
* @param waypoints The waypoints the path must pass through
|
|
212
|
+
* @param options Additional measurement options
|
|
213
|
+
* @param [options.cost] The function that returns the cost for a given move between grid spaces
|
|
214
|
+
* (default is the distance travelled)
|
|
215
|
+
* @param result The measurement result that the measurements need to be written to
|
|
216
|
+
*/
|
|
217
|
+
protected abstract _measurePath(
|
|
218
|
+
waypoints: GridMeasurePathWaypointData2D[],
|
|
219
|
+
options: { cost?: GridMeasurePathCostFunction2D },
|
|
220
|
+
result: GridMeasurePathResult,
|
|
221
|
+
): void;
|
|
222
|
+
protected abstract _measurePath(
|
|
223
|
+
waypoints: GridMeasurePathWaypointData3D[],
|
|
224
|
+
options: { cost?: GridMeasurePathCostFunction3D },
|
|
225
|
+
result: GridMeasurePathResult,
|
|
226
|
+
): void;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Returns the sequence of grid offsets of a shortest, direct path passing through the given waypoints.
|
|
230
|
+
* @param waypoints The waypoints the path must pass through
|
|
231
|
+
* @returns The sequence of grid offsets of a shortest, direct path
|
|
232
|
+
*/
|
|
233
|
+
abstract getDirectPath(waypoints: GridCoordinates2D[]): GridOffset2D[];
|
|
234
|
+
abstract getDirectPath(waypoints: GridCoordinates3D[]): GridOffset3D[];
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Get the point translated in a direction by a distance.
|
|
238
|
+
* @param point The point that is to be translated.
|
|
239
|
+
* @param direction The angle of direction in degrees.
|
|
240
|
+
* @param distance The distance in grid units.
|
|
241
|
+
* @returns The translated point.
|
|
242
|
+
*/
|
|
243
|
+
abstract getTranslatedPoint(point: Point, direction: number, distance: number): Point;
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Get the circle polygon given the radius in grid units for this grid.
|
|
247
|
+
* The points of the polygon are returned ordered in positive orientation.
|
|
248
|
+
* In gridless grids an approximation of the true circle with a deviation of less than 0.25 pixels is returned.
|
|
249
|
+
* @param center The center point of the circle.
|
|
250
|
+
* @param radius The radius in grid units.
|
|
251
|
+
* @returns The points of the circle polygon.
|
|
252
|
+
*/
|
|
253
|
+
abstract getCircle(center: Point, radius: number): Point[];
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Get the cone polygon given the radius in grid units and the angle in degrees for this grid.
|
|
257
|
+
* The points of the polygon are returned ordered in positive orientation.
|
|
258
|
+
* In gridless grids an approximation of the true cone with a deviation of less than 0.25 pixels is returned.
|
|
259
|
+
* @param origin The origin point of the cone.
|
|
260
|
+
* @param radius The radius in grid units.
|
|
261
|
+
* @param direction The direction in degrees.
|
|
262
|
+
* @param angle The angle in degrees.
|
|
263
|
+
* @returns The points of the cone polygon.
|
|
264
|
+
*/
|
|
265
|
+
getCone(origin: Point, radius: number, direction: number, angle: number): Point[];
|
|
266
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Point } from "../_types.mjs";
|
|
2
|
+
import { GridOffset2D, HexagonalGridCoordinates2D, HexagonalGridCube2D } from "./_types.mjs";
|
|
3
|
+
import { HexagonalGrid } from "./hexagonal.mjs";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A helper class which represents a single hexagon as part of a HexagonalGrid.
|
|
7
|
+
* This class relies on having an active canvas scene in order to know the configuration of the hexagonal grid.
|
|
8
|
+
*/
|
|
9
|
+
export class GridHex {
|
|
10
|
+
/**
|
|
11
|
+
* Construct a GridHex instance by providing a hex coordinate.
|
|
12
|
+
* @param coordinates The coordinates of the hex to construct
|
|
13
|
+
* @param grid The hexagonal grid instance to which this hex belongs
|
|
14
|
+
*/
|
|
15
|
+
constructor(coordinates: HexagonalGridCoordinates2D, grid: HexagonalGrid);
|
|
16
|
+
|
|
17
|
+
/** The hexagonal grid to which this hex belongs. */
|
|
18
|
+
grid: HexagonalGrid;
|
|
19
|
+
|
|
20
|
+
/** The cube coordinate of this hex */
|
|
21
|
+
cube: HexagonalGridCube2D;
|
|
22
|
+
|
|
23
|
+
/** The offset coordinate of this hex */
|
|
24
|
+
offset: GridOffset2D;
|
|
25
|
+
|
|
26
|
+
/** Return a reference to the pixel point in the center of this hexagon. */
|
|
27
|
+
get center(): Point;
|
|
28
|
+
|
|
29
|
+
/** Return a reference to the pixel point of the top-left corner of this hexagon. */
|
|
30
|
+
get topLeft(): Point;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Return the array of hexagons which are neighbors of this one.
|
|
34
|
+
* This result is un-bounded by the confines of the game canvas and may include hexes which are off-canvas.
|
|
35
|
+
*/
|
|
36
|
+
getNeighbors(): GridHex[];
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Get a neighboring hex by shifting along cube coordinates
|
|
40
|
+
* @param dq A number of hexes to shift along the q axis
|
|
41
|
+
* @param dr A number of hexes to shift along the r axis
|
|
42
|
+
* @param ds A number of hexes to shift along the s axis
|
|
43
|
+
* @returns The shifted hex
|
|
44
|
+
*/
|
|
45
|
+
shiftCube(dq: number, dr: number, ds: number): GridHex;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Return whether this GridHex equals the same position as some other GridHex instance.
|
|
49
|
+
* @param other Some other GridHex
|
|
50
|
+
* @returns Are the positions equal?
|
|
51
|
+
*/
|
|
52
|
+
equals(other: GridHex): boolean;
|
|
53
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ElevatedPoint, Point, Rectangle } from "../_types.mjs";
|
|
2
|
+
import { MovementDirection } from "./../constants.mjs";
|
|
3
|
+
import {
|
|
4
|
+
GridCoordinates2D,
|
|
5
|
+
GridCoordinates3D,
|
|
6
|
+
GridMeasurePathCostFunction2D,
|
|
7
|
+
GridMeasurePathCostFunction3D,
|
|
8
|
+
GridMeasurePathResult,
|
|
9
|
+
GridMeasurePathWaypointData2D,
|
|
10
|
+
GridMeasurePathWaypointData3D,
|
|
11
|
+
GridOffset2D,
|
|
12
|
+
GridOffset3D,
|
|
13
|
+
GridSnappingBehavior,
|
|
14
|
+
} from "./_types.mjs";
|
|
15
|
+
import { BaseGrid } from "./base.mjs";
|
|
16
|
+
|
|
17
|
+
/** The gridless grid class. */
|
|
18
|
+
export class GridlessGrid extends BaseGrid {
|
|
19
|
+
override readonly type: typeof CONST.GRID_TYPES.GRIDLESS;
|
|
20
|
+
|
|
21
|
+
override calculateDimensions(
|
|
22
|
+
sceneWidth: number,
|
|
23
|
+
sceneHeight: number,
|
|
24
|
+
padding: number,
|
|
25
|
+
): { width: number; height: number; x: number; y: number; rows: number; columns: number };
|
|
26
|
+
|
|
27
|
+
override getOffset(coords: GridCoordinates2D): GridOffset2D;
|
|
28
|
+
override getOffset(coords: GridCoordinates3D): GridOffset3D;
|
|
29
|
+
|
|
30
|
+
override getOffsetRange(bounds: Rectangle): [number, number, number, number];
|
|
31
|
+
|
|
32
|
+
override getAdjacentOffsets(coords: GridCoordinates2D): GridOffset2D[];
|
|
33
|
+
override getAdjacentOffsets(coords: GridCoordinates3D): GridOffset3D[];
|
|
34
|
+
|
|
35
|
+
override testAdjacency(coords1: GridCoordinates2D, coords2: GridCoordinates2D): boolean;
|
|
36
|
+
override testAdjacency(coords1: GridCoordinates3D, coords2: GridCoordinates3D): boolean;
|
|
37
|
+
|
|
38
|
+
override getShiftedOffset(coords: GridCoordinates2D, direction: MovementDirection): GridOffset2D;
|
|
39
|
+
override getShiftedOffset(coords: GridCoordinates3D, direction: MovementDirection): GridOffset3D;
|
|
40
|
+
|
|
41
|
+
override getShiftedPoint(point: Point, direction: MovementDirection): Point;
|
|
42
|
+
override getShiftedPoint(point: ElevatedPoint, direction: MovementDirection): ElevatedPoint;
|
|
43
|
+
|
|
44
|
+
override getTopLeftPoint(coords: GridCoordinates2D): Point;
|
|
45
|
+
override getTopLeftPoint(coords: GridCoordinates3D): ElevatedPoint;
|
|
46
|
+
|
|
47
|
+
override getCenterPoint(coords: GridCoordinates2D): Point;
|
|
48
|
+
override getCenterPoint(coords: GridCoordinates3D): ElevatedPoint;
|
|
49
|
+
|
|
50
|
+
override getShape(): Point[];
|
|
51
|
+
|
|
52
|
+
override getVertices(coords: GridCoordinates2D): Point[];
|
|
53
|
+
|
|
54
|
+
override getSnappedPoint(point: Point, behavior: GridSnappingBehavior): Point;
|
|
55
|
+
override getSnappedPoint(point: ElevatedPoint, behavior: GridSnappingBehavior): ElevatedPoint;
|
|
56
|
+
|
|
57
|
+
protected override _measurePath(
|
|
58
|
+
waypoints: GridMeasurePathWaypointData2D[],
|
|
59
|
+
options: { cost?: GridMeasurePathCostFunction2D },
|
|
60
|
+
result: GridMeasurePathResult,
|
|
61
|
+
): void;
|
|
62
|
+
protected override _measurePath(
|
|
63
|
+
waypoints: GridMeasurePathWaypointData3D[],
|
|
64
|
+
options: { cost?: GridMeasurePathCostFunction3D },
|
|
65
|
+
result: GridMeasurePathResult,
|
|
66
|
+
): void;
|
|
67
|
+
|
|
68
|
+
override getDirectPath(waypoints: GridCoordinates2D[]): GridOffset2D[];
|
|
69
|
+
override getDirectPath(waypoints: GridCoordinates3D[]): GridOffset3D[];
|
|
70
|
+
|
|
71
|
+
override getTranslatedPoint(point: Point, direction: MovementDirection, distance: number): Point;
|
|
72
|
+
override getTranslatedPoint(point: ElevatedPoint, direction: MovementDirection, distance: number): ElevatedPoint;
|
|
73
|
+
|
|
74
|
+
override getCircle(center: Point, radius: number): Point[];
|
|
75
|
+
|
|
76
|
+
override getCone(origin: Point, radius: number, direction: number, angle: number): Point[];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface GridlessGrid extends BaseGrid {
|
|
80
|
+
get isGridless(): true;
|
|
81
|
+
get isHexagonal(): false;
|
|
82
|
+
get isSquare(): false;
|
|
83
|
+
|
|
84
|
+
diagonals?: never;
|
|
85
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { ElevatedPoint, Point, Rectangle } from "./../_types.mjs";
|
|
2
|
+
import { GridDiagonalRule, MovementDirection } from "./../constants.mjs";
|
|
3
|
+
import {
|
|
4
|
+
GridCoordinates2D,
|
|
5
|
+
GridCoordinates3D,
|
|
6
|
+
GridMeasurePathCostFunction2D,
|
|
7
|
+
GridMeasurePathCostFunction3D,
|
|
8
|
+
GridMeasurePathResult,
|
|
9
|
+
GridMeasurePathWaypointData2D,
|
|
10
|
+
GridMeasurePathWaypointData3D,
|
|
11
|
+
GridOffset2D,
|
|
12
|
+
GridOffset3D,
|
|
13
|
+
GridSnappingBehavior,
|
|
14
|
+
HexagonalGridConfiguration,
|
|
15
|
+
HexagonalGridCoordinates2D,
|
|
16
|
+
HexagonalGridCoordinates3D,
|
|
17
|
+
HexagonalGridCube2D,
|
|
18
|
+
HexagonalGridCube3D,
|
|
19
|
+
} from "./_types.mjs";
|
|
20
|
+
import { BaseGrid } from "./base.mjs";
|
|
21
|
+
|
|
22
|
+
/** The hexagonal grid class. */
|
|
23
|
+
export class HexagonalGrid extends BaseGrid {
|
|
24
|
+
override readonly type:
|
|
25
|
+
| typeof CONST.GRID_TYPES.HEXEVENQ
|
|
26
|
+
| typeof CONST.GRID_TYPES.HEXODDQ
|
|
27
|
+
| typeof CONST.GRID_TYPES.HEXEVENR
|
|
28
|
+
| typeof CONST.GRID_TYPES.HEXODDR;
|
|
29
|
+
|
|
30
|
+
/** Is this grid column-based (flat-topped) or row-based (pointy-topped)? */
|
|
31
|
+
columns: boolean;
|
|
32
|
+
|
|
33
|
+
/** Is this grid even or odd? */
|
|
34
|
+
even: boolean;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The rule for diagonal measurement (see {@link CONST.GRID_DIAGONALS}).
|
|
38
|
+
*/
|
|
39
|
+
readonly diagonals: GridDiagonalRule;
|
|
40
|
+
|
|
41
|
+
/** The hexagonal grid constructor. */
|
|
42
|
+
constructor(config: HexagonalGridConfiguration);
|
|
43
|
+
|
|
44
|
+
override getOffset(coords: GridCoordinates2D): GridOffset2D;
|
|
45
|
+
override getOffset(coords: GridCoordinates3D): GridOffset3D;
|
|
46
|
+
|
|
47
|
+
override getOffsetRange(bounds: Rectangle): [number, number, number, number];
|
|
48
|
+
|
|
49
|
+
override getAdjacentOffsets(coords: GridCoordinates2D): GridOffset2D[];
|
|
50
|
+
override getAdjacentOffsets(coords: GridCoordinates3D): GridOffset3D[];
|
|
51
|
+
|
|
52
|
+
override testAdjacency(coords1: GridCoordinates2D, coords2: GridCoordinates2D): boolean;
|
|
53
|
+
override testAdjacency(coords1: GridCoordinates3D, coords2: GridCoordinates3D): boolean;
|
|
54
|
+
|
|
55
|
+
override getShiftedOffset(coords: GridCoordinates2D, direction: MovementDirection): GridOffset2D;
|
|
56
|
+
override getShiftedOffset(coords: GridCoordinates3D, direction: MovementDirection): GridOffset3D;
|
|
57
|
+
|
|
58
|
+
override getShiftedPoint(point: Point, direction: MovementDirection): Point;
|
|
59
|
+
override getShiftedPoint(point: ElevatedPoint, direction: MovementDirection): ElevatedPoint;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Returns the cube coordinates of the grid space corresponding to the given coordinates.
|
|
63
|
+
* @param coords The coordinates
|
|
64
|
+
* @returns The cube coordinates
|
|
65
|
+
*/
|
|
66
|
+
getCube(coords: HexagonalGridCoordinates2D): HexagonalGridCube2D;
|
|
67
|
+
getCube(coords: HexagonalGridCoordinates3D): HexagonalGridCube3D;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Returns the cube coordinates of grid spaces adjacent to the one corresponding to the given coordinates.
|
|
71
|
+
* @param coords The coordinates
|
|
72
|
+
* @returns The adjacent cube coordinates
|
|
73
|
+
*/
|
|
74
|
+
getAdjacentCubes(coords: HexagonalGridCoordinates2D): HexagonalGridCube2D[];
|
|
75
|
+
getAdjacentCubes(coords: HexagonalGridCoordinates3D): HexagonalGridCube3D[];
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Returns the cube coordinates of the grid space corresponding to the given coordinates
|
|
79
|
+
* shifted by one grid space in the given direction.
|
|
80
|
+
* @param coords The coordinates
|
|
81
|
+
* @param direction The direction (see {@link CONST.MOVEMENT_DIRECTIONS})
|
|
82
|
+
*/
|
|
83
|
+
getShiftedCube(coords: HexagonalGridCoordinates2D, direction: MovementDirection): HexagonalGridCube2D;
|
|
84
|
+
getShiftedCube(coords: HexagonalGridCoordinates3D, direction: MovementDirection): HexagonalGridCube3D;
|
|
85
|
+
|
|
86
|
+
override getTopLeftPoint(coords: GridCoordinates2D): Point;
|
|
87
|
+
override getTopLeftPoint(coords: GridCoordinates3D): ElevatedPoint;
|
|
88
|
+
|
|
89
|
+
override getCenterPoint(coords: GridCoordinates2D): Point;
|
|
90
|
+
override getCenterPoint(coords: GridCoordinates3D): ElevatedPoint;
|
|
91
|
+
|
|
92
|
+
override getShape(): Point[];
|
|
93
|
+
|
|
94
|
+
override getVertices(coords: GridCoordinates2D): Point[];
|
|
95
|
+
|
|
96
|
+
override getSnappedPoint(point: Point, behavior: GridSnappingBehavior): Point;
|
|
97
|
+
override getSnappedPoint(point: ElevatedPoint, behavior: GridSnappingBehavior): ElevatedPoint;
|
|
98
|
+
|
|
99
|
+
override calculateDimensions(
|
|
100
|
+
sceneWidth: number,
|
|
101
|
+
sceneHeight: number,
|
|
102
|
+
padding: number,
|
|
103
|
+
): { width: number; height: number; x: number; y: number; rows: number; columns: number };
|
|
104
|
+
|
|
105
|
+
protected override _measurePath(
|
|
106
|
+
waypoints: GridMeasurePathWaypointData2D[],
|
|
107
|
+
options: { cost?: GridMeasurePathCostFunction2D },
|
|
108
|
+
result: GridMeasurePathResult,
|
|
109
|
+
): void;
|
|
110
|
+
protected override _measurePath(
|
|
111
|
+
waypoints: GridMeasurePathWaypointData3D[],
|
|
112
|
+
options: { cost?: GridMeasurePathCostFunction3D },
|
|
113
|
+
result: GridMeasurePathResult,
|
|
114
|
+
): void;
|
|
115
|
+
|
|
116
|
+
override getDirectPath(waypoints: GridCoordinates2D[]): GridOffset2D[];
|
|
117
|
+
override getDirectPath(waypoints: GridCoordinates3D[]): GridOffset3D[];
|
|
118
|
+
|
|
119
|
+
override getTranslatedPoint(point: Point, direction: number, distance: number): Point;
|
|
120
|
+
|
|
121
|
+
override getCircle(center: Point, radius: number): Point[];
|
|
122
|
+
|
|
123
|
+
/* -------------------------------------------- */
|
|
124
|
+
/* Conversion Functions */
|
|
125
|
+
/* -------------------------------------------- */
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Round the fractional cube coordinates (q, r, s).
|
|
129
|
+
* @see {@link https://www.redblobgames.com/grids/hexagons/}
|
|
130
|
+
* @param cube The fractional cube coordinates
|
|
131
|
+
* @returns The rounded integer cube coordinates
|
|
132
|
+
*/
|
|
133
|
+
static cubeRound(cube: HexagonalGridCube2D): HexagonalGridCube2D;
|
|
134
|
+
static cubeRound(cube: HexagonalGridCube3D): HexagonalGridCube3D;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Convert point coordinates (x, y) into cube coordinates (q, r, s).
|
|
138
|
+
* Inverse of {@link HexagonalGrid#cubeToPoint}.
|
|
139
|
+
* @see {@link https://www.redblobgames.com/grids/hexagons/}
|
|
140
|
+
* @param point The point
|
|
141
|
+
* @returns The (fractional) cube coordinates
|
|
142
|
+
*/
|
|
143
|
+
pointToCube(point: Point): HexagonalGridCube2D;
|
|
144
|
+
pointToCube(point: ElevatedPoint): HexagonalGridCube3D;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Convert cube coordinates (q, r, s) into point coordinates (x, y).
|
|
148
|
+
* Inverse of {@link HexagonalGrid#pointToCube}.
|
|
149
|
+
* @see {@link https://www.redblobgames.com/grids/hexagons/}
|
|
150
|
+
* @param cube The cube coordinates
|
|
151
|
+
* @returns The point coordinates
|
|
152
|
+
*/
|
|
153
|
+
cubeToPoint(cube: HexagonalGridCube2D): Point;
|
|
154
|
+
cubeToPoint(cube: HexagonalGridCube3D): ElevatedPoint;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Convert offset coordinates (i, j) into integer cube coordinates (q, r, s).
|
|
158
|
+
* Inverse of {@link HexagonalGrid#cubeToOffset}.
|
|
159
|
+
* @see {@link https://www.redblobgames.com/grids/hexagons/}
|
|
160
|
+
* @param offset The offset coordinates
|
|
161
|
+
* @returns The integer cube coordinates
|
|
162
|
+
*/
|
|
163
|
+
offsetToCube(offset: GridOffset2D): HexagonalGridCube2D;
|
|
164
|
+
offsetToCube(offset: GridOffset3D): HexagonalGridCube3D;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Convert integer cube coordinates (q, r, s) into offset coordinates (i, j).
|
|
168
|
+
* Inverse of {@link HexagonalGrid#offsetToCube}.
|
|
169
|
+
* @see {@link https://www.redblobgames.com/grids/hexagons/}
|
|
170
|
+
* @param cube The cube coordinates
|
|
171
|
+
* @returns The offset coordinates
|
|
172
|
+
*/
|
|
173
|
+
cubeToOffset(cube: HexagonalGridCube2D): GridOffset2D;
|
|
174
|
+
cubeToOffset(cube: HexagonalGridCube3D): GridOffset3D;
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Measure the distance in hexagons between two cube coordinates.
|
|
178
|
+
* @see {@link https://www.redblobgames.com/grids/hexagons/}
|
|
179
|
+
* @param a The first cube coordinates
|
|
180
|
+
* @param b The second cube coordinates
|
|
181
|
+
* @returns The distance between the two cube coordinates in hexagons
|
|
182
|
+
*/
|
|
183
|
+
static cubeDistance(a: HexagonalGridCube2D, b: HexagonalGridCube2D): GridOffset2D;
|
|
184
|
+
static cubeDistance(a: HexagonalGridCube3D, b: HexagonalGridCube3D): GridOffset3D;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export interface HexagonalGrid extends BaseGrid {
|
|
188
|
+
get isGridless(): false;
|
|
189
|
+
get isHexagonal(): true;
|
|
190
|
+
get isSquare(): false;
|
|
191
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { ElevatedPoint, Point, Rectangle } from "../_types.mjs";
|
|
2
|
+
import { GridDiagonalRule, MovementDirection } from "./../constants.mjs";
|
|
3
|
+
import {
|
|
4
|
+
GridConfiguration,
|
|
5
|
+
GridCoordinates2D,
|
|
6
|
+
GridCoordinates3D,
|
|
7
|
+
GridMeasurePathCostFunction2D,
|
|
8
|
+
GridMeasurePathCostFunction3D,
|
|
9
|
+
GridMeasurePathResult,
|
|
10
|
+
GridMeasurePathWaypointData2D,
|
|
11
|
+
GridMeasurePathWaypointData3D,
|
|
12
|
+
GridOffset2D,
|
|
13
|
+
GridOffset3D,
|
|
14
|
+
GridSnappingBehavior,
|
|
15
|
+
} from "./_types.mjs";
|
|
16
|
+
import { BaseGrid } from "./base.mjs";
|
|
17
|
+
|
|
18
|
+
/** The square grid class. */
|
|
19
|
+
export class SquareGrid extends BaseGrid {
|
|
20
|
+
override readonly type: typeof CONST.GRID_TYPES.SQUARE;
|
|
21
|
+
|
|
22
|
+
/** The rule for diagonal measurement (see {@link CONST.GRID_DIAGONALS}). */
|
|
23
|
+
diagonals: GridDiagonalRule;
|
|
24
|
+
|
|
25
|
+
/** The square grid constructor. */
|
|
26
|
+
constructor(config: GridConfiguration);
|
|
27
|
+
|
|
28
|
+
override getOffset(coords: GridCoordinates2D): GridOffset2D;
|
|
29
|
+
override getOffset(coords: GridCoordinates3D): GridOffset3D;
|
|
30
|
+
|
|
31
|
+
override getOffsetRange(bounds: Rectangle): [number, number, number, number];
|
|
32
|
+
|
|
33
|
+
override getAdjacentOffsets(coords: GridCoordinates3D): GridOffset3D[];
|
|
34
|
+
override getAdjacentOffsets(coords: GridCoordinates2D): GridOffset2D[];
|
|
35
|
+
|
|
36
|
+
override testAdjacency(coords1: GridCoordinates3D, coords2: GridCoordinates3D): boolean;
|
|
37
|
+
override testAdjacency(coords1: GridCoordinates2D, coords2: GridCoordinates2D): boolean;
|
|
38
|
+
|
|
39
|
+
override getShiftedOffset(coords: GridCoordinates3D, direction: MovementDirection): GridOffset3D;
|
|
40
|
+
override getShiftedOffset(coords: GridCoordinates2D, direction: MovementDirection): GridOffset2D;
|
|
41
|
+
|
|
42
|
+
override getShiftedPoint(point: ElevatedPoint, direction: MovementDirection): ElevatedPoint;
|
|
43
|
+
override getShiftedPoint(point: Point, direction: MovementDirection): Point;
|
|
44
|
+
|
|
45
|
+
override getTopLeftPoint(coords: GridCoordinates3D): ElevatedPoint;
|
|
46
|
+
override getTopLeftPoint(coords: GridCoordinates2D): Point;
|
|
47
|
+
override getTopLeftPoint(coords: GridCoordinates2D | GridCoordinates3D): Point | ElevatedPoint;
|
|
48
|
+
|
|
49
|
+
override getCenterPoint(coords: GridCoordinates3D): ElevatedPoint;
|
|
50
|
+
override getCenterPoint(coords: GridCoordinates2D): Point;
|
|
51
|
+
override getCenterPoint(coords: GridCoordinates2D | GridCoordinates3D): Point | ElevatedPoint;
|
|
52
|
+
|
|
53
|
+
override getShape(): Point[];
|
|
54
|
+
|
|
55
|
+
override getVertices(coords: GridCoordinates2D): Point[];
|
|
56
|
+
|
|
57
|
+
override getSnappedPoint(point: ElevatedPoint, behavior: GridSnappingBehavior): ElevatedPoint;
|
|
58
|
+
override getSnappedPoint(point: Point, behavior: GridSnappingBehavior): Point;
|
|
59
|
+
|
|
60
|
+
protected override _measurePath(
|
|
61
|
+
waypoints: GridMeasurePathWaypointData3D[],
|
|
62
|
+
options: { cost?: GridMeasurePathCostFunction3D },
|
|
63
|
+
result: GridMeasurePathResult,
|
|
64
|
+
): void;
|
|
65
|
+
protected override _measurePath(
|
|
66
|
+
waypoints: GridMeasurePathWaypointData2D[],
|
|
67
|
+
options: { cost?: GridMeasurePathCostFunction2D },
|
|
68
|
+
result: GridMeasurePathResult,
|
|
69
|
+
): void;
|
|
70
|
+
|
|
71
|
+
override getDirectPath(waypoints: GridCoordinates2D[]): GridOffset2D[];
|
|
72
|
+
override getDirectPath(waypoints: GridCoordinates3D[]): GridOffset3D[];
|
|
73
|
+
|
|
74
|
+
override getTranslatedPoint(point: Point, direction: MovementDirection, distance: number): Point;
|
|
75
|
+
override getTranslatedPoint(point: ElevatedPoint, direction: MovementDirection, distance: number): ElevatedPoint;
|
|
76
|
+
|
|
77
|
+
override getCircle(center: Point, radius: number): Point[];
|
|
78
|
+
|
|
79
|
+
override calculateDimensions(
|
|
80
|
+
sceneWidth: number,
|
|
81
|
+
sceneHeight: number,
|
|
82
|
+
padding: number,
|
|
83
|
+
): { width: number; height: number; x: number; y: number; rows: number; columns: number };
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface SquareGrid extends BaseGrid {
|
|
87
|
+
get isGridless(): false;
|
|
88
|
+
get isHexagonal(): false;
|
|
89
|
+
get isSquare(): true;
|
|
90
|
+
}
|