@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.
Files changed (638) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +3 -0
  3. package/package.json +76 -0
  4. package/src/client/_module.d.mts +103 -0
  5. package/src/client/_types.d.mts +900 -0
  6. package/src/client/applications/_module.d.mts +27 -0
  7. package/src/client/applications/_types.d.mts +192 -0
  8. package/src/client/applications/api/_module.d.mts +8 -0
  9. package/src/client/applications/api/application.d.mts +456 -0
  10. package/src/client/applications/api/category-browser.d.mts +78 -0
  11. package/src/client/applications/api/dialog.d.mts +213 -0
  12. package/src/client/applications/api/document-sheet.d.mts +148 -0
  13. package/src/client/applications/api/handlebars-application.d.mts +120 -0
  14. package/src/client/applications/apps/_module.d.mts +10 -0
  15. package/src/client/applications/apps/av/_module.d.mts +2 -0
  16. package/src/client/applications/apps/av/camera-popout.d.mts +53 -0
  17. package/src/client/applications/apps/av/cameras.d.mts +235 -0
  18. package/src/client/applications/apps/combat-tracker-config.d.mts +27 -0
  19. package/src/client/applications/apps/compendium-art-config.d.mts +17 -0
  20. package/src/client/applications/apps/document-ownership.d.mts +17 -0
  21. package/src/client/applications/apps/document-sheet-config.d.mts +144 -0
  22. package/src/client/applications/apps/file-picker.d.mts +321 -0
  23. package/src/client/applications/apps/grid-config.d.mts +33 -0
  24. package/src/client/applications/apps/image-popout.d.mts +92 -0
  25. package/src/client/applications/apps/permission-config.d.mts +24 -0
  26. package/src/client/applications/dice/_module.d.mts +1 -0
  27. package/src/client/applications/dice/roll-resolver.d.mts +92 -0
  28. package/src/client/applications/elements/_module.d.mts +19 -0
  29. package/src/client/applications/elements/codemirror/element.d.mts +73 -0
  30. package/src/client/applications/elements/color-picker.d.mts +14 -0
  31. package/src/client/applications/elements/document-embed.d.mts +14 -0
  32. package/src/client/applications/elements/document-tags.d.mts +50 -0
  33. package/src/client/applications/elements/enriched-content.d.mts +31 -0
  34. package/src/client/applications/elements/file-picker.d.mts +59 -0
  35. package/src/client/applications/elements/form-element.d.mts +105 -0
  36. package/src/client/applications/elements/hue-slider.d.mts +35 -0
  37. package/src/client/applications/elements/multi-select.d.mts +89 -0
  38. package/src/client/applications/elements/prosemirror-editor.d.mts +32 -0
  39. package/src/client/applications/elements/range-picker.d.mts +23 -0
  40. package/src/client/applications/elements/secret-block.d.mts +28 -0
  41. package/src/client/applications/elements/string-tags.d.mts +50 -0
  42. package/src/client/applications/forms/fields.d.mts +132 -0
  43. package/src/client/applications/handlebars.d.mts +303 -0
  44. package/src/client/applications/hud/_module.d.mts +5 -0
  45. package/src/client/applications/hud/container.d.mts +38 -0
  46. package/src/client/applications/hud/drawing-hud.d.mts +14 -0
  47. package/src/client/applications/hud/placeable-hud.d.mts +72 -0
  48. package/src/client/applications/hud/tile-hud.d.mts +21 -0
  49. package/src/client/applications/hud/token-hud.d.mts +69 -0
  50. package/src/client/applications/settings/_module.d.mts +2 -0
  51. package/src/client/applications/settings/config.d.mts +38 -0
  52. package/src/client/applications/settings/menus/_module.d.mts +6 -0
  53. package/src/client/applications/settings/menus/av-config.d.mts +37 -0
  54. package/src/client/applications/settings/menus/default-sheets-config.d.mts +23 -0
  55. package/src/client/applications/settings/menus/dice-config.d.mts +23 -0
  56. package/src/client/applications/settings/menus/font-config.d.mts +145 -0
  57. package/src/client/applications/settings/menus/prototype-overrides.d.mts +20 -0
  58. package/src/client/applications/settings/menus/ui-config.d.mts +40 -0
  59. package/src/client/applications/sheets/_module.d.mts +9 -0
  60. package/src/client/applications/sheets/combatant-config.d.mts +21 -0
  61. package/src/client/applications/sheets/item-sheet.d.mts +13 -0
  62. package/src/client/applications/sheets/scene-config.d.mts +50 -0
  63. package/src/client/applications/sheets/template-config.d.mts +19 -0
  64. package/src/client/applications/sheets/token/mixin.mts +182 -0
  65. package/src/client/applications/sheets/token/prototype-config.d.mts +75 -0
  66. package/src/client/applications/sheets/token/token-config.d.mts +62 -0
  67. package/src/client/applications/sheets/user-config.d.mts +27 -0
  68. package/src/client/applications/sidebar/_module.d.mts +5 -0
  69. package/src/client/applications/sidebar/apps/_module.d.mts +9 -0
  70. package/src/client/applications/sidebar/apps/chat-popout.d.mts +45 -0
  71. package/src/client/applications/sidebar/apps/compendium.d.mts +65 -0
  72. package/src/client/applications/sidebar/apps/controls-config.d.mts +29 -0
  73. package/src/client/applications/sidebar/apps/folder-export.d.mts +11 -0
  74. package/src/client/applications/sidebar/apps/invitation-links.d.mts +10 -0
  75. package/src/client/applications/sidebar/apps/module-management.d.mts +65 -0
  76. package/src/client/applications/sidebar/apps/support-details.d.mts +72 -0
  77. package/src/client/applications/sidebar/apps/tours-management.d.mts +16 -0
  78. package/src/client/applications/sidebar/apps/world-config.d.mts +38 -0
  79. package/src/client/applications/sidebar/document-directory.d.mts +327 -0
  80. package/src/client/applications/sidebar/sidebar-tab.d.mts +89 -0
  81. package/src/client/applications/sidebar/sidebar.d.mts +93 -0
  82. package/src/client/applications/sidebar/tabs/_module.d.mts +14 -0
  83. package/src/client/applications/sidebar/tabs/actor-directory.d.mts +26 -0
  84. package/src/client/applications/sidebar/tabs/cards-directory.d.mts +19 -0
  85. package/src/client/applications/sidebar/tabs/chat.d.mts +271 -0
  86. package/src/client/applications/sidebar/tabs/combat-tracker.d.mts +198 -0
  87. package/src/client/applications/sidebar/tabs/compendium-directory.d.mts +289 -0
  88. package/src/client/applications/sidebar/tabs/item-directory.d.mts +24 -0
  89. package/src/client/applications/sidebar/tabs/journal-directory.d.mts +19 -0
  90. package/src/client/applications/sidebar/tabs/macro-directory.d.mts +12 -0
  91. package/src/client/applications/sidebar/tabs/playlist-directory.d.mts +267 -0
  92. package/src/client/applications/sidebar/tabs/roll-table-directory.d.mts +19 -0
  93. package/src/client/applications/sidebar/tabs/scene-directory.d.mts +26 -0
  94. package/src/client/applications/sidebar/tabs/settings.d.mts +16 -0
  95. package/src/client/applications/ui/_module.d.mts +9 -0
  96. package/src/client/applications/ui/game-pause.d.mts +15 -0
  97. package/src/client/applications/ui/hotbar.d.mts +86 -0
  98. package/src/client/applications/ui/main-menu.d.mts +48 -0
  99. package/src/client/applications/ui/notifications.d.mts +168 -0
  100. package/src/client/applications/ui/players.d.mts +92 -0
  101. package/src/client/applications/ui/region-legend.d.mts +47 -0
  102. package/src/client/applications/ui/scene-controls.d.mts +138 -0
  103. package/src/client/applications/ui/scene-navigation.d.mts +61 -0
  104. package/src/client/applications/ux/_module.d.mts +11 -0
  105. package/src/client/applications/ux/context-menu.d.mts +202 -0
  106. package/src/client/applications/ux/drag-drop.d.mts +131 -0
  107. package/src/client/applications/ux/draggable.d.mts +108 -0
  108. package/src/client/applications/ux/form-data-extended.d.mts +76 -0
  109. package/src/client/applications/ux/html-secret.d.mts +61 -0
  110. package/src/client/applications/ux/prosemirror-editor.d.mts +173 -0
  111. package/src/client/applications/ux/search-filter.d.mts +119 -0
  112. package/src/client/applications/ux/tabs.d.mts +94 -0
  113. package/src/client/applications/ux/text-editor.d.mts +329 -0
  114. package/src/client/appv1/_module.d.mts +2 -0
  115. package/src/client/appv1/api/_module.d.mts +8 -0
  116. package/src/client/appv1/api/application-v1.d.mts +388 -0
  117. package/src/client/appv1/api/dialog-v1.d.mts +191 -0
  118. package/src/client/appv1/api/document-sheet-v1.d.mts +96 -0
  119. package/src/client/appv1/api/form-application-v1.d.mts +203 -0
  120. package/src/client/appv1/sheets/_module.d.mts +9 -0
  121. package/src/client/appv1/sheets/actor-sheet.d.mts +129 -0
  122. package/src/client/appv1/sheets/adventure-importer.d.mts +43 -0
  123. package/src/client/appv1/sheets/item-sheet.d.mts +42 -0
  124. package/src/client/appv1/sheets/journal-page-sheet.d.mts +100 -0
  125. package/src/client/appv1/sheets/journal-sheet.d.mts +262 -0
  126. package/src/client/audio/_module.d.mts +9 -0
  127. package/src/client/audio/_types.d.mts +121 -0
  128. package/src/client/audio/biquad.d.mts +29 -0
  129. package/src/client/audio/cache.d.mts +58 -0
  130. package/src/client/audio/convolver.d.mts +50 -0
  131. package/src/client/audio/helper.d.mts +306 -0
  132. package/src/client/audio/sound.d.mts +289 -0
  133. package/src/client/audio/timeout.d.mts +71 -0
  134. package/src/client/av/_module.d.mts +7 -0
  135. package/src/client/av/client.d.mts +167 -0
  136. package/src/client/av/clients/_module.d.mts +1 -0
  137. package/src/client/av/clients/simplepeer.d.mts +123 -0
  138. package/src/client/av/master.d.mts +128 -0
  139. package/src/client/av/settings.d.mts +100 -0
  140. package/src/client/canvas/_module.d.mts +20 -0
  141. package/src/client/canvas/animation/_module.d.mts +5 -0
  142. package/src/client/canvas/animation/_types.d.mts +73 -0
  143. package/src/client/canvas/animation/canvas-animation.d.mts +114 -0
  144. package/src/client/canvas/animation/chat-bubbles.d.mts +58 -0
  145. package/src/client/canvas/animation/smooth-noise.d.mts +34 -0
  146. package/src/client/canvas/board.d.mts +413 -0
  147. package/src/client/canvas/containers/_module.d.mts +20 -0
  148. package/src/client/canvas/containers/_types.d.mts +21 -0
  149. package/src/client/canvas/containers/advanced/cached-container.d.mts +108 -0
  150. package/src/client/canvas/containers/advanced/full-canvas-mixin.d.mts +12 -0
  151. package/src/client/canvas/containers/advanced/full-container-mixin.d.mts +12 -0
  152. package/src/client/canvas/containers/advanced/unbound-container.d.mts +12 -0
  153. package/src/client/canvas/containers/elements/control-icon.d.mts +40 -0
  154. package/src/client/canvas/containers/elements/cursor.d.mts +37 -0
  155. package/src/client/canvas/containers/elements/door-control.d.mts +66 -0
  156. package/src/client/canvas/containers/elements/door-mesh.d.mts +127 -0
  157. package/src/client/canvas/containers/elements/grid-highlight.d.mts +25 -0
  158. package/src/client/canvas/containers/elements/grid-mesh.d.mts +34 -0
  159. package/src/client/canvas/containers/elements/particles/leaves.d.mts +15 -0
  160. package/src/client/canvas/containers/elements/particles/particle-effect.d.mts +45 -0
  161. package/src/client/canvas/containers/elements/point-source-mesh.d.mts +29 -0
  162. package/src/client/canvas/containers/elements/precise-text.d.mts +18 -0
  163. package/src/client/canvas/containers/elements/quad-mesh.d.mts +41 -0
  164. package/src/client/canvas/containers/elements/resize-handle.d.mts +61 -0
  165. package/src/client/canvas/containers/elements/sprite-mesh.d.mts +319 -0
  166. package/src/client/canvas/extensions/_module.d.mts +4 -0
  167. package/src/client/canvas/extensions/circle-extension.d.mts +4 -0
  168. package/src/client/canvas/extensions/graphics-extension.d.mts +5 -0
  169. package/src/client/canvas/extensions/polygon-extension.d.mts +4 -0
  170. package/src/client/canvas/extensions/rectangle-extension.d.mts +4 -0
  171. package/src/client/canvas/framebuffer-snapshot.d.mts +20 -0
  172. package/src/client/canvas/geometry/_module.d.mts +12 -0
  173. package/src/client/canvas/geometry/_types.d.mts +90 -0
  174. package/src/client/canvas/geometry/clockwise-sweep.d.mts +129 -0
  175. package/src/client/canvas/geometry/edges/_module.d.mts +5 -0
  176. package/src/client/canvas/geometry/edges/collision.d.mts +58 -0
  177. package/src/client/canvas/geometry/edges/edge.d.mts +144 -0
  178. package/src/client/canvas/geometry/edges/edges.d.mts +14 -0
  179. package/src/client/canvas/geometry/edges/vertex.d.mts +85 -0
  180. package/src/client/canvas/geometry/observable-transform.d.mts +28 -0
  181. package/src/client/canvas/geometry/quad-tree.d.mts +150 -0
  182. package/src/client/canvas/geometry/shapes/limited-angle-polygon.d.mts +69 -0
  183. package/src/client/canvas/geometry/shapes/polygon-mesher.d.mts +50 -0
  184. package/src/client/canvas/geometry/shapes/ray.d.mts +126 -0
  185. package/src/client/canvas/geometry/shapes/source-polygon.d.mts +161 -0
  186. package/src/client/canvas/geometry/unbound-transform.d.mts +9 -0
  187. package/src/client/canvas/geometry/weiler-atherton-clipping.d.mts +120 -0
  188. package/src/client/canvas/groups/_module.d.mts +10 -0
  189. package/src/client/canvas/groups/canvas-group-mixin.mts +95 -0
  190. package/src/client/canvas/groups/effects.d.mts +118 -0
  191. package/src/client/canvas/groups/environment.d.mts +79 -0
  192. package/src/client/canvas/groups/hidden.d.mts +42 -0
  193. package/src/client/canvas/groups/interface.d.mts +31 -0
  194. package/src/client/canvas/groups/overlay.d.mts +11 -0
  195. package/src/client/canvas/groups/primary.d.mts +223 -0
  196. package/src/client/canvas/groups/rendered.d.mts +7 -0
  197. package/src/client/canvas/groups/visibility.d.mts +154 -0
  198. package/src/client/canvas/interaction/_module.d.mts +15 -0
  199. package/src/client/canvas/interaction/_types.d.mts +67 -0
  200. package/src/client/canvas/interaction/mouse-handler.d.mts +231 -0
  201. package/src/client/canvas/interaction/ping/alert.d.mts +16 -0
  202. package/src/client/canvas/interaction/ping/arrow.d.mts +16 -0
  203. package/src/client/canvas/interaction/ping/chevron.d.mts +25 -0
  204. package/src/client/canvas/interaction/ping/ping.d.mts +35 -0
  205. package/src/client/canvas/interaction/ping/pulse.d.mts +28 -0
  206. package/src/client/canvas/interaction/render-flags.d.mts +69 -0
  207. package/src/client/canvas/interaction/ruler/base-ruler.d.mts +179 -0
  208. package/src/client/canvas/interaction/ruler/ruler.d.mts +56 -0
  209. package/src/client/canvas/layers/_module.d.mts +31 -0
  210. package/src/client/canvas/layers/_types.d.mts +89 -0
  211. package/src/client/canvas/layers/base/canvas-layer.d.mts +71 -0
  212. package/src/client/canvas/layers/base/interaction-layer.d.mts +176 -0
  213. package/src/client/canvas/layers/base/placeables-layer.d.mts +410 -0
  214. package/src/client/canvas/layers/controls.d.mts +181 -0
  215. package/src/client/canvas/layers/drawings.d.mts +75 -0
  216. package/src/client/canvas/layers/effects/background-effects.d.mts +32 -0
  217. package/src/client/canvas/layers/effects/coloration-effects.d.mts +23 -0
  218. package/src/client/canvas/layers/effects/darkness-effects.d.mts +14 -0
  219. package/src/client/canvas/layers/effects/illumination-effects.d.mts +72 -0
  220. package/src/client/canvas/layers/effects/weather-effects.d.mts +137 -0
  221. package/src/client/canvas/layers/grid.d.mts +112 -0
  222. package/src/client/canvas/layers/lighting.d.mts +59 -0
  223. package/src/client/canvas/layers/masks/depth.d.mts +53 -0
  224. package/src/client/canvas/layers/masks/occlusion.d.mts +84 -0
  225. package/src/client/canvas/layers/masks/vision.d.mts +44 -0
  226. package/src/client/canvas/layers/notes.d.mts +59 -0
  227. package/src/client/canvas/layers/regions.d.mts +70 -0
  228. package/src/client/canvas/layers/sounds.d.mts +190 -0
  229. package/src/client/canvas/layers/templates.d.mts +41 -0
  230. package/src/client/canvas/layers/tiles.d.mts +66 -0
  231. package/src/client/canvas/layers/tokens.d.mts +171 -0
  232. package/src/client/canvas/layers/walls.d.mts +99 -0
  233. package/src/client/canvas/loader.d.mts +135 -0
  234. package/src/client/canvas/perception/_module.d.mts +13 -0
  235. package/src/client/canvas/perception/_types.d.mts +61 -0
  236. package/src/client/canvas/perception/detection-mode.d.mts +122 -0
  237. package/src/client/canvas/perception/detection-modes/darkvision.d.mts +11 -0
  238. package/src/client/canvas/perception/detection-modes/invisibility-perception.d.mts +15 -0
  239. package/src/client/canvas/perception/detection-modes/light-perception.d.mts +18 -0
  240. package/src/client/canvas/perception/detection-modes/super-perception.d.mts +13 -0
  241. package/src/client/canvas/perception/detection-modes/tremor-perception.d.mts +13 -0
  242. package/src/client/canvas/perception/fog.d.mts +65 -0
  243. package/src/client/canvas/perception/perception-manager.d.mts +72 -0
  244. package/src/client/canvas/perception/vision-mode.d.mts +133 -0
  245. package/src/client/canvas/placeables/_module.d.mts +15 -0
  246. package/src/client/canvas/placeables/_types.d.mts +29 -0
  247. package/src/client/canvas/placeables/drawing.d.mts +106 -0
  248. package/src/client/canvas/placeables/light.d.mts +155 -0
  249. package/src/client/canvas/placeables/note.d.mts +61 -0
  250. package/src/client/canvas/placeables/placeable-object.d.mts +415 -0
  251. package/src/client/canvas/placeables/region.d.mts +129 -0
  252. package/src/client/canvas/placeables/regions/_module.d.mts +2 -0
  253. package/src/client/canvas/placeables/regions/geometry.d.mts +19 -0
  254. package/src/client/canvas/placeables/regions/mesh.d.mts +72 -0
  255. package/src/client/canvas/placeables/sound.d.mts +93 -0
  256. package/src/client/canvas/placeables/template.d.mts +164 -0
  257. package/src/client/canvas/placeables/tile.d.mts +189 -0
  258. package/src/client/canvas/placeables/token.d.mts +675 -0
  259. package/src/client/canvas/placeables/tokens/_module.d.mts +8 -0
  260. package/src/client/canvas/placeables/tokens/base-ruler.d.mts +68 -0
  261. package/src/client/canvas/placeables/tokens/ring-config.d.mts +201 -0
  262. package/src/client/canvas/placeables/tokens/ring-data.d.mts +56 -0
  263. package/src/client/canvas/placeables/tokens/ring.d.mts +194 -0
  264. package/src/client/canvas/placeables/tokens/ruler.d.mts +96 -0
  265. package/src/client/canvas/placeables/tokens/targets.d.mts +22 -0
  266. package/src/client/canvas/placeables/tokens/turn-marker-data.d.mts +52 -0
  267. package/src/client/canvas/placeables/tokens/turn-marker.d.mts +45 -0
  268. package/src/client/canvas/placeables/wall.d.mts +155 -0
  269. package/src/client/canvas/primary/_module.d.mts +7 -0
  270. package/src/client/canvas/primary/primary-canvas-container.d.mts +40 -0
  271. package/src/client/canvas/primary/primary-canvas-object.mts +215 -0
  272. package/src/client/canvas/primary/primary-graphics.d.mts +22 -0
  273. package/src/client/canvas/primary/primary-occludable-object.mts +139 -0
  274. package/src/client/canvas/primary/primary-particle-effect.d.mts +50 -0
  275. package/src/client/canvas/primary/primary-sprite-mesh.d.mts +127 -0
  276. package/src/client/canvas/rendering/_module.d.mts +5 -0
  277. package/src/client/canvas/rendering/batching/_module.d.mts +2 -0
  278. package/src/client/canvas/rendering/batching/batch-renderer.d.mts +71 -0
  279. package/src/client/canvas/rendering/batching/batch-shader-generator.d.mts +13 -0
  280. package/src/client/canvas/rendering/blend-modes.d.mts +37 -0
  281. package/src/client/canvas/rendering/filters/_module.d.mts +13 -0
  282. package/src/client/canvas/rendering/filters/base-filter.d.mts +28 -0
  283. package/src/client/canvas/rendering/filters/base-mask-filter.d.mts +14 -0
  284. package/src/client/canvas/rendering/filters/blur.d.mts +152 -0
  285. package/src/client/canvas/rendering/filters/effects-masking.d.mts +84 -0
  286. package/src/client/canvas/rendering/filters/environment.d.mts +22 -0
  287. package/src/client/canvas/rendering/filters/glow-overlay.d.mts +41 -0
  288. package/src/client/canvas/rendering/filters/invisibility.d.mts +11 -0
  289. package/src/client/canvas/rendering/filters/outline-overlay.d.mts +43 -0
  290. package/src/client/canvas/rendering/filters/smaa/_module.d.mts +4 -0
  291. package/src/client/canvas/rendering/filters/smaa/blend.d.mts +6 -0
  292. package/src/client/canvas/rendering/filters/smaa/edges.d.mts +11 -0
  293. package/src/client/canvas/rendering/filters/smaa/smaa.d.mts +102 -0
  294. package/src/client/canvas/rendering/filters/smaa/weights.d.mts +11 -0
  295. package/src/client/canvas/rendering/filters/transition.d.mts +97 -0
  296. package/src/client/canvas/rendering/filters/visibility.d.mts +46 -0
  297. package/src/client/canvas/rendering/filters/vision-mask-filter.d.mts +15 -0
  298. package/src/client/canvas/rendering/filters/void.d.mts +6 -0
  299. package/src/client/canvas/rendering/filters/weather-occlusion-mask.d.mts +30 -0
  300. package/src/client/canvas/rendering/mixins/_module.d.mts +2 -0
  301. package/src/client/canvas/rendering/mixins/base-shader-mixin.d.mts +118 -0
  302. package/src/client/canvas/rendering/mixins/fragment-channel-mixin.d.mts +21 -0
  303. package/src/client/canvas/rendering/shaders/_module.d.mts +80 -0
  304. package/src/client/canvas/rendering/shaders/_types.d.mts +98 -0
  305. package/src/client/canvas/rendering/shaders/base-shader.d.mts +58 -0
  306. package/src/client/canvas/rendering/shaders/graphics/dash-line.d.mts +13 -0
  307. package/src/client/canvas/rendering/shaders/grid/grid.d.mts +99 -0
  308. package/src/client/canvas/rendering/shaders/lighting/background-lighting.d.mts +50 -0
  309. package/src/client/canvas/rendering/shaders/lighting/base-lighting.d.mts +164 -0
  310. package/src/client/canvas/rendering/shaders/lighting/coloration-lighting.d.mts +48 -0
  311. package/src/client/canvas/rendering/shaders/lighting/darkness-lighting.d.mts +45 -0
  312. package/src/client/canvas/rendering/shaders/lighting/effects/bewitching-wave.d.mts +10 -0
  313. package/src/client/canvas/rendering/shaders/lighting/effects/black-hole.d.mts +5 -0
  314. package/src/client/canvas/rendering/shaders/lighting/effects/chroma.d.mts +5 -0
  315. package/src/client/canvas/rendering/shaders/lighting/effects/emanation.d.mts +5 -0
  316. package/src/client/canvas/rendering/shaders/lighting/effects/energy-field.d.mts +5 -0
  317. package/src/client/canvas/rendering/shaders/lighting/effects/fairy-light.d.mts +10 -0
  318. package/src/client/canvas/rendering/shaders/lighting/effects/flame.d.mts +75 -0
  319. package/src/client/canvas/rendering/shaders/lighting/effects/fog.d.mts +5 -0
  320. package/src/client/canvas/rendering/shaders/lighting/effects/force-grid.d.mts +5 -0
  321. package/src/client/canvas/rendering/shaders/lighting/effects/ghost-light.d.mts +10 -0
  322. package/src/client/canvas/rendering/shaders/lighting/effects/hexa-dome.d.mts +5 -0
  323. package/src/client/canvas/rendering/shaders/lighting/effects/light-dome.d.mts +5 -0
  324. package/src/client/canvas/rendering/shaders/lighting/effects/magical-gloom.d.mts +5 -0
  325. package/src/client/canvas/rendering/shaders/lighting/effects/pulse.d.mts +41 -0
  326. package/src/client/canvas/rendering/shaders/lighting/effects/radial-rainbow.d.mts +5 -0
  327. package/src/client/canvas/rendering/shaders/lighting/effects/revolving-light.d.mts +38 -0
  328. package/src/client/canvas/rendering/shaders/lighting/effects/roiling-mass.d.mts +5 -0
  329. package/src/client/canvas/rendering/shaders/lighting/effects/siren-light.d.mts +80 -0
  330. package/src/client/canvas/rendering/shaders/lighting/effects/smoke-patch.d.mts +10 -0
  331. package/src/client/canvas/rendering/shaders/lighting/effects/star-light.d.mts +5 -0
  332. package/src/client/canvas/rendering/shaders/lighting/effects/sunburst.d.mts +10 -0
  333. package/src/client/canvas/rendering/shaders/lighting/effects/swirling-rainbow.d.mts +5 -0
  334. package/src/client/canvas/rendering/shaders/lighting/effects/torch.d.mts +41 -0
  335. package/src/client/canvas/rendering/shaders/lighting/effects/vortex.d.mts +10 -0
  336. package/src/client/canvas/rendering/shaders/lighting/effects/wave.d.mts +10 -0
  337. package/src/client/canvas/rendering/shaders/lighting/illumination-lighting.d.mts +51 -0
  338. package/src/client/canvas/rendering/shaders/region/adjust-darkness-level.d.mts +58 -0
  339. package/src/client/canvas/rendering/shaders/region/base.d.mts +20 -0
  340. package/src/client/canvas/rendering/shaders/region/highlight.d.mts +18 -0
  341. package/src/client/canvas/rendering/shaders/samplers/amplification.d.mts +30 -0
  342. package/src/client/canvas/rendering/shaders/samplers/base-sampler.d.mts +141 -0
  343. package/src/client/canvas/rendering/shaders/samplers/baseline-illumination.d.mts +15 -0
  344. package/src/client/canvas/rendering/shaders/samplers/color-adjustments.d.mts +36 -0
  345. package/src/client/canvas/rendering/shaders/samplers/colorize-brightness.d.mts +17 -0
  346. package/src/client/canvas/rendering/shaders/samplers/fog-of-war.d.mts +9 -0
  347. package/src/client/canvas/rendering/shaders/samplers/primary/depth.d.mts +66 -0
  348. package/src/client/canvas/rendering/shaders/samplers/primary/occlusion.d.mts +77 -0
  349. package/src/client/canvas/rendering/shaders/samplers/primary/primary.d.mts +28 -0
  350. package/src/client/canvas/rendering/shaders/samplers/primary/token-ring.d.mts +33 -0
  351. package/src/client/canvas/rendering/shaders/vision/background-vision.d.mts +47 -0
  352. package/src/client/canvas/rendering/shaders/vision/base-vision.d.mts +11 -0
  353. package/src/client/canvas/rendering/shaders/vision/coloration-vision.d.mts +43 -0
  354. package/src/client/canvas/rendering/shaders/vision/effects/amplification.d.mts +35 -0
  355. package/src/client/canvas/rendering/shaders/vision/effects/wave.d.mts +10 -0
  356. package/src/client/canvas/rendering/shaders/vision/illumination-vision.d.mts +45 -0
  357. package/src/client/canvas/rendering/shaders/weather/base-weather.d.mts +87 -0
  358. package/src/client/canvas/rendering/shaders/weather/effect.d.mts +27 -0
  359. package/src/client/canvas/rendering/shaders/weather/fog.d.mts +26 -0
  360. package/src/client/canvas/rendering/shaders/weather/rain.d.mts +16 -0
  361. package/src/client/canvas/rendering/shaders/weather/snow.d.mts +12 -0
  362. package/src/client/canvas/scene-manager.d.mts +101 -0
  363. package/src/client/canvas/sources/_module.d.mts +10 -0
  364. package/src/client/canvas/sources/base-effect-source.d.mts +179 -0
  365. package/src/client/canvas/sources/base-light-source.d.mts +141 -0
  366. package/src/client/canvas/sources/global-light-source.d.mts +36 -0
  367. package/src/client/canvas/sources/point-darkness-source.d.mts +87 -0
  368. package/src/client/canvas/sources/point-effect-source.d.mts +105 -0
  369. package/src/client/canvas/sources/point-light-source.d.mts +54 -0
  370. package/src/client/canvas/sources/point-movement-source.d.mts +10 -0
  371. package/src/client/canvas/sources/point-sound-source.d.mts +29 -0
  372. package/src/client/canvas/sources/point-vision-source.d.mts +151 -0
  373. package/src/client/canvas/sources/rendered-effect-source.d.mts +214 -0
  374. package/src/client/canvas/texture-extractor.d.mts +98 -0
  375. package/src/client/canvas/workers/_module.d.mts +1 -0
  376. package/src/client/canvas/workers/texture-worker.d.mts +73 -0
  377. package/src/client/client.d.mts +15 -0
  378. package/src/client/config.d.mts +868 -0
  379. package/src/client/data/_module.d.mts +11 -0
  380. package/src/client/data/_types.d.mts +97 -0
  381. package/src/client/data/calendar.d.mts +175 -0
  382. package/src/client/data/client-backend.d.mts +82 -0
  383. package/src/client/data/combat-config.d.mts +84 -0
  384. package/src/client/data/region-behaviors/_module.d.mts +9 -0
  385. package/src/client/data/region-behaviors/adjust-darkness-level.d.mts +29 -0
  386. package/src/client/data/region-behaviors/base.d.mts +70 -0
  387. package/src/client/data/region-behaviors/execute-macro.d.mts +17 -0
  388. package/src/client/data/region-behaviors/execute-script.d.mts +15 -0
  389. package/src/client/data/region-behaviors/increase-movement-cost.d.mts +36 -0
  390. package/src/client/data/region-behaviors/pause-game.d.mts +15 -0
  391. package/src/client/data/region-behaviors/suppress-weather.d.mts +13 -0
  392. package/src/client/data/region-behaviors/teleport-token.d.mts +27 -0
  393. package/src/client/data/region-behaviors/toggle-behavior.d.mts +19 -0
  394. package/src/client/data/region-shapes/_module.d.mts +2 -0
  395. package/src/client/data/region-shapes/polygon-tree.d.mts +101 -0
  396. package/src/client/data/region-shapes/shape.d.mts +97 -0
  397. package/src/client/data/terrain-data.d.mts +70 -0
  398. package/src/client/dice/_module.d.mts +14 -0
  399. package/src/client/dice/_types.d.mts +89 -0
  400. package/src/client/dice/parser.d.mts +83 -0
  401. package/src/client/dice/roll.d.mts +542 -0
  402. package/src/client/dice/terms/_module.d.mts +16 -0
  403. package/src/client/dice/terms/_types.d.mts +10 -0
  404. package/src/client/dice/terms/coin.d.mts +35 -0
  405. package/src/client/dice/terms/dice.d.mts +263 -0
  406. package/src/client/dice/terms/die.d.mts +199 -0
  407. package/src/client/dice/terms/fate.d.mts +22 -0
  408. package/src/client/dice/terms/function.d.mts +60 -0
  409. package/src/client/dice/terms/numeric.d.mts +39 -0
  410. package/src/client/dice/terms/operator.d.mts +28 -0
  411. package/src/client/dice/terms/parenthetical.d.mts +70 -0
  412. package/src/client/dice/terms/pool.d.mts +170 -0
  413. package/src/client/dice/terms/string.d.mts +23 -0
  414. package/src/client/dice/terms/term.d.mts +135 -0
  415. package/src/client/dice/twister.d.mts +87 -0
  416. package/src/client/documents/_module.d.mts +70 -0
  417. package/src/client/documents/_types.d.mts +736 -0
  418. package/src/client/documents/abstract/_module.d.mts +6 -0
  419. package/src/client/documents/abstract/canvas-document.d.mts +65 -0
  420. package/src/client/documents/abstract/client-document.d.mts +545 -0
  421. package/src/client/documents/abstract/directory-collection-mixin.d.mts +79 -0
  422. package/src/client/documents/abstract/document-collection.d.mts +124 -0
  423. package/src/client/documents/abstract/world-collection.d.mts +157 -0
  424. package/src/client/documents/active-effect.d.mts +203 -0
  425. package/src/client/documents/actor-delta.d.mts +76 -0
  426. package/src/client/documents/actor.d.mts +269 -0
  427. package/src/client/documents/adventure.d.mts +38 -0
  428. package/src/client/documents/ambient-light.d.mts +34 -0
  429. package/src/client/documents/ambient-sound.d.mts +16 -0
  430. package/src/client/documents/card.d.mts +102 -0
  431. package/src/client/documents/cards.d.mts +38 -0
  432. package/src/client/documents/chat-message.d.mts +190 -0
  433. package/src/client/documents/collections/_module.d.mts +19 -0
  434. package/src/client/documents/collections/actors.d.mts +28 -0
  435. package/src/client/documents/collections/card-stacks.d.mts +14 -0
  436. package/src/client/documents/collections/chat-messages.d.mts +29 -0
  437. package/src/client/documents/collections/combat-encounters.d.mts +32 -0
  438. package/src/client/documents/collections/compendium-collection.d.mts +170 -0
  439. package/src/client/documents/collections/compendium-folders.d.mts +30 -0
  440. package/src/client/documents/collections/compendium-packs.d.mts +23 -0
  441. package/src/client/documents/collections/fog-explorations.d.mts +19 -0
  442. package/src/client/documents/collections/folders.d.mts +20 -0
  443. package/src/client/documents/collections/items.d.mts +13 -0
  444. package/src/client/documents/collections/journal.d.mts +24 -0
  445. package/src/client/documents/collections/macros.d.mts +15 -0
  446. package/src/client/documents/collections/playlists.d.mts +28 -0
  447. package/src/client/documents/collections/roll-tables.d.mts +20 -0
  448. package/src/client/documents/collections/scenes.d.mts +60 -0
  449. package/src/client/documents/collections/users.d.mts +57 -0
  450. package/src/client/documents/collections/world-settings.d.mts +34 -0
  451. package/src/client/documents/combat.d.mts +371 -0
  452. package/src/client/documents/combatant-group.d.mts +42 -0
  453. package/src/client/documents/combatant.d.mts +125 -0
  454. package/src/client/documents/drawing.d.mts +27 -0
  455. package/src/client/documents/fog-exploration.d.mts +30 -0
  456. package/src/client/documents/folder.d.mts +124 -0
  457. package/src/client/documents/item.d.mts +73 -0
  458. package/src/client/documents/journal-entry-category.d.mts +15 -0
  459. package/src/client/documents/journal-entry-page.d.mts +77 -0
  460. package/src/client/documents/journal-entry.d.mts +78 -0
  461. package/src/client/documents/macro.d.mts +56 -0
  462. package/src/client/documents/measured-template.d.mts +41 -0
  463. package/src/client/documents/note.d.mts +28 -0
  464. package/src/client/documents/playlist-sound.d.mts +107 -0
  465. package/src/client/documents/playlist.d.mts +163 -0
  466. package/src/client/documents/region-behavior.d.mts +55 -0
  467. package/src/client/documents/region.d.mts +98 -0
  468. package/src/client/documents/roll-table.d.mts +172 -0
  469. package/src/client/documents/scene.d.mts +282 -0
  470. package/src/client/documents/setting.d.mts +35 -0
  471. package/src/client/documents/table-result.d.mts +35 -0
  472. package/src/client/documents/tile.d.mts +22 -0
  473. package/src/client/documents/token.d.mts +621 -0
  474. package/src/client/documents/user.d.mts +148 -0
  475. package/src/client/documents/wall.d.mts +20 -0
  476. package/src/client/game.d.mts +231 -0
  477. package/src/client/global.d.mts +28 -0
  478. package/src/client/helpers/_module.d.mts +13 -0
  479. package/src/client/helpers/_types.d.mts +26 -0
  480. package/src/client/helpers/client-issues.d.mts +90 -0
  481. package/src/client/helpers/client-settings.d.mts +191 -0
  482. package/src/client/helpers/document-index.d.mts +81 -0
  483. package/src/client/helpers/hooks.d.mts +210 -0
  484. package/src/client/helpers/interaction/_module.d.mts +6 -0
  485. package/src/client/helpers/interaction/client-keybindings.d.mts +143 -0
  486. package/src/client/helpers/interaction/clipboard-helper.d.mts +14 -0
  487. package/src/client/helpers/interaction/gamepad-manager.d.mts +15 -0
  488. package/src/client/helpers/interaction/keyboard-manager.d.mts +189 -0
  489. package/src/client/helpers/interaction/mouse-manager.d.mts +20 -0
  490. package/src/client/helpers/interaction/tooltip-manager.d.mts +227 -0
  491. package/src/client/helpers/localization.d.mts +143 -0
  492. package/src/client/helpers/media/_module.d.mts +3 -0
  493. package/src/client/helpers/media/compendium-art.d.mts +29 -0
  494. package/src/client/helpers/media/image-helper.d.mts +116 -0
  495. package/src/client/helpers/media/video-helper.d.mts +113 -0
  496. package/src/client/helpers/socket-interface.d.mts +14 -0
  497. package/src/client/helpers/time.d.mts +92 -0
  498. package/src/client/helpers/workers.d.mts +92 -0
  499. package/src/client/nue/_module.d.mts +13 -0
  500. package/src/client/nue/nue-manager.d.mts +13 -0
  501. package/src/client/nue/tour.d.mts +283 -0
  502. package/src/client/nue/tours/_module.d.mts +1 -0
  503. package/src/client/nue/tours-collection.d.mts +23 -0
  504. package/src/client/packages/_module.d.mts +19 -0
  505. package/src/client/packages/_types.d.mts +12 -0
  506. package/src/client/packages/client-package.mts +145 -0
  507. package/src/client/packages/module.d.mts +12 -0
  508. package/src/client/packages/system.d.mts +9 -0
  509. package/src/client/packages/world.d.mts +28 -0
  510. package/src/client/ui.d.mts +86 -0
  511. package/src/client/utils/_module.d.mts +4 -0
  512. package/src/client/utils/helpers.d.mts +148 -0
  513. package/src/common/_types.d.mts +151 -0
  514. package/src/common/abstract/_module.d.mts +8 -0
  515. package/src/common/abstract/_types.d.mts +187 -0
  516. package/src/common/abstract/backend.d.mts +159 -0
  517. package/src/common/abstract/data.d.mts +213 -0
  518. package/src/common/abstract/document.d.mts +700 -0
  519. package/src/common/abstract/embedded-collection.d.mts +141 -0
  520. package/src/common/abstract/socket.d.mts +35 -0
  521. package/src/common/abstract/type-data.d.mts +163 -0
  522. package/src/common/config.d.mts +147 -0
  523. package/src/common/constants.d.mts +2184 -0
  524. package/src/common/data/_module.d.mts +6 -0
  525. package/src/common/data/_types.d.mts +329 -0
  526. package/src/common/data/data.d.mts +390 -0
  527. package/src/common/data/fields.d.mts +1377 -0
  528. package/src/common/data/validation-failure.d.mts +127 -0
  529. package/src/common/data/validators.d.mts +35 -0
  530. package/src/common/documents/_module.d.mts +64 -0
  531. package/src/common/documents/_types.d.mts +1 -0
  532. package/src/common/documents/active-effect.d.mts +87 -0
  533. package/src/common/documents/actor-delta.d.mts +81 -0
  534. package/src/common/documents/actor.d.mts +105 -0
  535. package/src/common/documents/adventure.d.mts +105 -0
  536. package/src/common/documents/ambient-light.d.mts +49 -0
  537. package/src/common/documents/ambient-sound.d.mts +72 -0
  538. package/src/common/documents/card.d.mts +98 -0
  539. package/src/common/documents/cards.d.mts +89 -0
  540. package/src/common/documents/chat-message.d.mts +107 -0
  541. package/src/common/documents/combat.d.mts +55 -0
  542. package/src/common/documents/combatant-group.d.mts +45 -0
  543. package/src/common/documents/combatant.d.mts +48 -0
  544. package/src/common/documents/drawing.d.mts +101 -0
  545. package/src/common/documents/fog-exploration.d.mts +50 -0
  546. package/src/common/documents/folder.d.mts +65 -0
  547. package/src/common/documents/item.d.mts +86 -0
  548. package/src/common/documents/journal-entry-category.d.mts +32 -0
  549. package/src/common/documents/journal-entry-page.d.mts +76 -0
  550. package/src/common/documents/journal-entry.d.mts +50 -0
  551. package/src/common/documents/macro.d.mts +87 -0
  552. package/src/common/documents/measured-template.d.mts +72 -0
  553. package/src/common/documents/note.d.mts +82 -0
  554. package/src/common/documents/playlist-sound.d.mts +53 -0
  555. package/src/common/documents/playlist.d.mts +48 -0
  556. package/src/common/documents/region-behavior.d.mts +49 -0
  557. package/src/common/documents/region.d.mts +61 -0
  558. package/src/common/documents/roll-table.d.mts +70 -0
  559. package/src/common/documents/scene.d.mts +237 -0
  560. package/src/common/documents/setting.d.mts +49 -0
  561. package/src/common/documents/table-result.d.mts +61 -0
  562. package/src/common/documents/tile.d.mts +88 -0
  563. package/src/common/documents/token.d.mts +213 -0
  564. package/src/common/documents/user.d.mts +82 -0
  565. package/src/common/documents/wall.d.mts +72 -0
  566. package/src/common/grid/_module.d.mts +6 -0
  567. package/src/common/grid/_types.d.mts +250 -0
  568. package/src/common/grid/base.d.mts +266 -0
  569. package/src/common/grid/grid-hex.d.mts +53 -0
  570. package/src/common/grid/gridless.d.mts +85 -0
  571. package/src/common/grid/hexagonal.d.mts +191 -0
  572. package/src/common/grid/square.d.mts +90 -0
  573. package/src/common/packages/_module.d.mts +6 -0
  574. package/src/common/packages/_types.d.mts +7 -0
  575. package/src/common/packages/base-module.d.mts +32 -0
  576. package/src/common/packages/base-package.d.mts +297 -0
  577. package/src/common/packages/base-system.d.mts +42 -0
  578. package/src/common/packages/base-world.d.mts +51 -0
  579. package/src/common/packages/sub-types.d.mts +12 -0
  580. package/src/common/primitives/_module.d.mts +10 -0
  581. package/src/common/primitives/array.d.mts +58 -0
  582. package/src/common/primitives/date.d.mts +24 -0
  583. package/src/common/primitives/math.d.mts +70 -0
  584. package/src/common/primitives/number.d.mts +79 -0
  585. package/src/common/primitives/regexp.d.mts +12 -0
  586. package/src/common/primitives/set.d.mts +129 -0
  587. package/src/common/primitives/string.d.mts +24 -0
  588. package/src/common/primitives/url.d.mts +12 -0
  589. package/src/common/prosemirror/_module.d.mts +77 -0
  590. package/src/common/prosemirror/_types.d.mts +75 -0
  591. package/src/common/prosemirror/click-handler.d.mts +24 -0
  592. package/src/common/prosemirror/content-link-plugin.d.mts +34 -0
  593. package/src/common/prosemirror/dirty-plugin.d.mts +10 -0
  594. package/src/common/prosemirror/dom-parser.d.mts +7 -0
  595. package/src/common/prosemirror/dropdown.d.mts +50 -0
  596. package/src/common/prosemirror/highlight-matches-plugin.d.mts +38 -0
  597. package/src/common/prosemirror/image-plugin.d.mts +70 -0
  598. package/src/common/prosemirror/input-rules.d.mts +24 -0
  599. package/src/common/prosemirror/keymaps.d.mts +27 -0
  600. package/src/common/prosemirror/menu.d.mts +206 -0
  601. package/src/common/prosemirror/paste-transformer.d.mts +10 -0
  602. package/src/common/prosemirror/plugin.d.mts +21 -0
  603. package/src/common/prosemirror/schema/_types.d.mts +15 -0
  604. package/src/common/prosemirror/schema/attribute-capture.d.mts +13 -0
  605. package/src/common/prosemirror/schema/core.d.mts +58 -0
  606. package/src/common/prosemirror/schema/image-link-node.d.mts +27 -0
  607. package/src/common/prosemirror/schema/image-node.d.mts +17 -0
  608. package/src/common/prosemirror/schema/link-mark.d.mts +29 -0
  609. package/src/common/prosemirror/schema/lists.d.mts +71 -0
  610. package/src/common/prosemirror/schema/marks.d.mts +49 -0
  611. package/src/common/prosemirror/schema/other.d.mts +161 -0
  612. package/src/common/prosemirror/schema/schema-definition.d.mts +43 -0
  613. package/src/common/prosemirror/schema/secret-node.d.mts +25 -0
  614. package/src/common/prosemirror/schema/tables.d.mts +161 -0
  615. package/src/common/prosemirror/schema/utils.d.mts +37 -0
  616. package/src/common/prosemirror/schema.d.mts +7 -0
  617. package/src/common/prosemirror/string-serializer.d.mts +84 -0
  618. package/src/common/prosemirror/util.d.mts +32 -0
  619. package/src/common/utils/_module.d.mts +19 -0
  620. package/src/common/utils/_types.d.mts +83 -0
  621. package/src/common/utils/bitmask.d.mts +122 -0
  622. package/src/common/utils/collection.d.mts +148 -0
  623. package/src/common/utils/color.d.mts +308 -0
  624. package/src/common/utils/event-emitter.d.mts +36 -0
  625. package/src/common/utils/geometry.d.mts +94 -0
  626. package/src/common/utils/helpers.d.mts +396 -0
  627. package/src/common/utils/http.d.mts +40 -0
  628. package/src/common/utils/iterable-weak-map.d.mts +26 -0
  629. package/src/common/utils/iterable-weak-set.d.mts +1 -0
  630. package/src/common/utils/logging.d.mts +25 -0
  631. package/src/common/utils/semaphore.d.mts +59 -0
  632. package/src/common/utils/string-tree.d.mts +60 -0
  633. package/src/common/utils/word-tree.d.mts +34 -0
  634. package/src/global-external.d.mts +48 -0
  635. package/src/index.d.ts +87 -0
  636. package/src/public/scripts/clipper.d.mts +920 -0
  637. package/src/tinymce-stub.d.mts +123 -0
  638. 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
+ }