excalibur 0.25.1 → 0.25.2

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 (254) hide show
  1. package/.nvmrc +1 -1
  2. package/CHANGELOG.md +119 -27
  3. package/README.md +0 -1
  4. package/build/dist/Actions/ActionsComponent.d.ts +1 -1
  5. package/build/dist/Actor.d.ts +46 -45
  6. package/build/dist/Camera.d.ts +10 -2
  7. package/build/dist/Class.d.ts +4 -5
  8. package/build/dist/Collision/BodyComponent.d.ts +6 -2
  9. package/build/dist/Collision/BoundingBox.d.ts +6 -0
  10. package/build/dist/Collision/ColliderComponent.d.ts +1 -4
  11. package/build/dist/Collision/Colliders/CircleCollider.d.ts +18 -2
  12. package/build/dist/Collision/Colliders/EdgeCollider.d.ts +1 -1
  13. package/build/dist/Collision/Colliders/SeparatingAxis.d.ts +2 -2
  14. package/build/dist/Collision/Detection/DynamicTreeCollisionProcessor.d.ts +4 -4
  15. package/build/dist/Collision/Detection/Pair.d.ts +5 -1
  16. package/build/dist/Collision/Group/CollisionGroup.d.ts +0 -1
  17. package/build/dist/Collision/MotionSystem.d.ts +4 -0
  18. package/build/dist/Collision/Solver/ContactConstraintPoint.d.ts +1 -1
  19. package/build/dist/Collision/Solver/Solver.d.ts +1 -1
  20. package/build/dist/Debug/Debug.d.ts +18 -1
  21. package/build/dist/Debug/DebugFlags.d.ts +16 -3
  22. package/build/dist/Engine.d.ts +66 -8
  23. package/build/dist/EntityComponentSystem/Component.d.ts +3 -3
  24. package/build/dist/EntityComponentSystem/Components/MotionComponent.d.ts +2 -2
  25. package/build/dist/EntityComponentSystem/Entity.d.ts +4 -4
  26. package/build/dist/EntityComponentSystem/System.d.ts +1 -1
  27. package/build/dist/EntityComponentSystem/SystemManager.d.ts +6 -1
  28. package/build/dist/EventDispatcher.d.ts +0 -5
  29. package/build/dist/Events/ExEvent.d.ts +6 -0
  30. package/build/dist/Events/PointerEvents.d.ts +37 -0
  31. package/build/dist/Graphics/Animation.d.ts +3 -2
  32. package/build/dist/Graphics/Circle.d.ts +2 -0
  33. package/build/dist/Graphics/Context/ExcaliburGraphicsContext.d.ts +37 -5
  34. package/build/dist/Graphics/Context/ExcaliburGraphicsContext2DCanvas.d.ts +12 -2
  35. package/build/dist/Graphics/Context/ExcaliburGraphicsContextWebGL.d.ts +29 -13
  36. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.d.ts +22 -0
  37. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.frag.glsl +53 -0
  38. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.vert.glsl +37 -0
  39. package/build/dist/Graphics/Context/image-renderer/image-renderer.d.ts +27 -0
  40. package/build/dist/Graphics/Context/image-renderer/image-renderer.frag.glsl +28 -0
  41. package/build/dist/Graphics/Context/{shaders/image-vertex.glsl → image-renderer/image-renderer.vert.glsl} +2 -7
  42. package/build/dist/Graphics/Context/{shaders → line-renderer}/line-fragment.glsl +0 -0
  43. package/build/dist/Graphics/Context/line-renderer/line-renderer.d.ts +21 -0
  44. package/build/dist/Graphics/Context/{shaders → line-renderer}/line-vertex.glsl +2 -2
  45. package/build/dist/Graphics/Context/{shaders → point-renderer}/point-fragment.glsl +6 -2
  46. package/build/dist/Graphics/Context/point-renderer/point-renderer.d.ts +21 -0
  47. package/build/dist/Graphics/Context/{shaders → point-renderer}/point-vertex.glsl +2 -2
  48. package/build/dist/Graphics/Context/quad-index-buffer.d.ts +36 -0
  49. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.d.ts +23 -0
  50. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.frag.glsl +85 -0
  51. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.vert.glsl +42 -0
  52. package/build/dist/Graphics/Context/render-source.d.ts +7 -0
  53. package/build/dist/Graphics/Context/render-target.d.ts +26 -0
  54. package/build/dist/Graphics/Context/renderer.d.ts +20 -51
  55. package/build/dist/Graphics/Context/screen-pass-painter/screen-fragment.glsl +11 -0
  56. package/build/dist/Graphics/Context/screen-pass-painter/screen-pass-painter.d.ts +13 -0
  57. package/build/dist/Graphics/Context/screen-pass-painter/screen-vertex.glsl +11 -0
  58. package/build/dist/Graphics/Context/shader.d.ts +116 -42
  59. package/build/dist/Graphics/Context/shaders/crt-effect.glsl +64 -0
  60. package/build/dist/Graphics/Context/shaders/grayscale-fragment.glsl +13 -0
  61. package/build/dist/Graphics/Context/shaders/invert-fragment.glsl +12 -0
  62. package/build/dist/Graphics/Context/texture-loader.d.ts +8 -2
  63. package/build/dist/Graphics/Context/vertex-buffer.d.ts +49 -0
  64. package/build/dist/Graphics/Context/vertex-layout.d.ts +52 -0
  65. package/build/dist/Graphics/Context/webgl-adapter.d.ts +9 -0
  66. package/build/dist/Graphics/Context/webgl-util.d.ts +22 -0
  67. package/build/dist/Graphics/DebugGraphicsComponent.d.ts +13 -0
  68. package/build/dist/Graphics/Filtering.d.ts +15 -0
  69. package/build/dist/Graphics/Font.d.ts +61 -23
  70. package/build/dist/Graphics/FontCommon.d.ts +43 -2
  71. package/build/dist/Graphics/Graphic.d.ts +23 -9
  72. package/build/dist/Graphics/GraphicsSystem.d.ts +0 -1
  73. package/build/dist/Graphics/ImageSource.d.ts +8 -3
  74. package/build/dist/Graphics/Polygon.d.ts +2 -0
  75. package/build/dist/Graphics/PostProcessor/ColorBlindnessMode.d.ts +5 -0
  76. package/build/dist/Graphics/PostProcessor/ColorBlindnessPostProcessor.d.ts +17 -0
  77. package/build/dist/Graphics/PostProcessor/PostProcessor.d.ts +7 -0
  78. package/build/dist/Graphics/PostProcessor/ScreenShader.d.ts +16 -0
  79. package/build/dist/Graphics/PostProcessor/color-blind-fragment.glsl +62 -0
  80. package/build/dist/Graphics/Raster.d.ts +32 -5
  81. package/build/dist/Graphics/Sprite.d.ts +5 -0
  82. package/build/dist/Graphics/SpriteFont.d.ts +6 -7
  83. package/build/dist/Graphics/SpriteSheet.d.ts +1 -2
  84. package/build/dist/Graphics/Text.d.ts +18 -2
  85. package/build/dist/Graphics/index.d.ts +14 -0
  86. package/build/dist/Id.d.ts +1 -1
  87. package/build/dist/Input/EngineInput.d.ts +2 -2
  88. package/build/dist/Input/Index.d.ts +10 -3
  89. package/build/dist/Input/NativePointerButton.d.ts +10 -0
  90. package/build/dist/Input/PointerAbstraction.d.ts +33 -0
  91. package/build/dist/Input/PointerButton.d.ts +10 -0
  92. package/build/dist/Input/PointerComponent.d.ts +24 -0
  93. package/build/dist/Input/PointerEvent.d.ts +18 -0
  94. package/build/dist/Input/PointerEventReceiver.d.ts +114 -0
  95. package/build/dist/Input/PointerScope.d.ts +14 -0
  96. package/build/dist/Input/PointerSystem.d.ts +43 -0
  97. package/build/dist/Input/PointerType.d.ts +9 -0
  98. package/build/dist/Input/WheelDeltaMode.d.ts +5 -0
  99. package/build/dist/Input/WheelEvent.d.ts +18 -0
  100. package/build/dist/Interfaces/PointerEventHandlers.d.ts +17 -16
  101. package/build/dist/Label.d.ts +9 -2
  102. package/build/dist/Loader.d.ts +5 -2
  103. package/build/dist/Math/Index.d.ts +1 -0
  104. package/build/dist/Math/matrix.d.ts +19 -1
  105. package/build/dist/Math/util.d.ts +45 -0
  106. package/build/dist/Particles.d.ts +12 -0
  107. package/build/dist/Resources/Gif.d.ts +1 -1
  108. package/build/dist/Scene.d.ts +10 -1
  109. package/build/dist/Screen.d.ts +4 -3
  110. package/build/dist/TileMap.d.ts +3 -2
  111. package/build/dist/Traits/Index.d.ts +0 -1
  112. package/build/dist/Trigger.d.ts +4 -0
  113. package/build/dist/Util/Clock.d.ts +118 -0
  114. package/build/dist/Util/Fps.d.ts +40 -0
  115. package/build/dist/Util/Observable.d.ts +1 -1
  116. package/build/dist/Util/Pool.d.ts +2 -10
  117. package/build/dist/Util/Util.d.ts +23 -66
  118. package/build/dist/excalibur.js +9124 -7580
  119. package/build/dist/excalibur.js.map +1 -1
  120. package/build/dist/excalibur.min.js +1 -1
  121. package/build/dist/excalibur.min.js.LICENSE.txt +2 -2
  122. package/build/dist/excalibur.min.js.map +1 -1
  123. package/build/dist/index.d.ts +5 -2
  124. package/build/esm/Actions/ActionsComponent.d.ts +1 -1
  125. package/build/esm/Actor.d.ts +46 -45
  126. package/build/esm/Camera.d.ts +10 -2
  127. package/build/esm/Class.d.ts +4 -5
  128. package/build/esm/Collision/BodyComponent.d.ts +6 -2
  129. package/build/esm/Collision/BoundingBox.d.ts +6 -0
  130. package/build/esm/Collision/ColliderComponent.d.ts +1 -4
  131. package/build/esm/Collision/Colliders/CircleCollider.d.ts +18 -2
  132. package/build/esm/Collision/Colliders/EdgeCollider.d.ts +1 -1
  133. package/build/esm/Collision/Colliders/SeparatingAxis.d.ts +2 -2
  134. package/build/esm/Collision/Detection/DynamicTreeCollisionProcessor.d.ts +4 -4
  135. package/build/esm/Collision/Detection/Pair.d.ts +5 -1
  136. package/build/esm/Collision/Group/CollisionGroup.d.ts +0 -1
  137. package/build/esm/Collision/MotionSystem.d.ts +4 -0
  138. package/build/esm/Collision/Solver/ContactConstraintPoint.d.ts +1 -1
  139. package/build/esm/Collision/Solver/Solver.d.ts +1 -1
  140. package/build/esm/Debug/Debug.d.ts +18 -1
  141. package/build/esm/Debug/DebugFlags.d.ts +16 -3
  142. package/build/esm/Engine.d.ts +66 -8
  143. package/build/esm/EntityComponentSystem/Component.d.ts +3 -3
  144. package/build/esm/EntityComponentSystem/Components/MotionComponent.d.ts +2 -2
  145. package/build/esm/EntityComponentSystem/Entity.d.ts +4 -4
  146. package/build/esm/EntityComponentSystem/System.d.ts +1 -1
  147. package/build/esm/EntityComponentSystem/SystemManager.d.ts +6 -1
  148. package/build/esm/EventDispatcher.d.ts +0 -5
  149. package/build/esm/Events/ExEvent.d.ts +6 -0
  150. package/build/esm/Events/PointerEvents.d.ts +37 -0
  151. package/build/esm/Graphics/Animation.d.ts +3 -2
  152. package/build/esm/Graphics/Circle.d.ts +2 -0
  153. package/build/esm/Graphics/Context/ExcaliburGraphicsContext.d.ts +37 -5
  154. package/build/esm/Graphics/Context/ExcaliburGraphicsContext2DCanvas.d.ts +12 -2
  155. package/build/esm/Graphics/Context/ExcaliburGraphicsContextWebGL.d.ts +29 -13
  156. package/build/esm/Graphics/Context/circle-renderer/circle-renderer.d.ts +22 -0
  157. package/build/esm/Graphics/Context/image-renderer/image-renderer.d.ts +27 -0
  158. package/build/esm/Graphics/Context/line-renderer/line-renderer.d.ts +21 -0
  159. package/build/esm/Graphics/Context/point-renderer/point-renderer.d.ts +21 -0
  160. package/build/esm/Graphics/Context/quad-index-buffer.d.ts +36 -0
  161. package/build/esm/Graphics/Context/rectangle-renderer/rectangle-renderer.d.ts +23 -0
  162. package/build/esm/Graphics/Context/render-source.d.ts +7 -0
  163. package/build/esm/Graphics/Context/render-target.d.ts +26 -0
  164. package/build/esm/Graphics/Context/renderer.d.ts +20 -51
  165. package/build/esm/Graphics/Context/screen-pass-painter/screen-pass-painter.d.ts +13 -0
  166. package/build/esm/Graphics/Context/shader.d.ts +116 -42
  167. package/build/esm/Graphics/Context/texture-loader.d.ts +8 -2
  168. package/build/esm/Graphics/Context/vertex-buffer.d.ts +49 -0
  169. package/build/esm/Graphics/Context/vertex-layout.d.ts +52 -0
  170. package/build/esm/Graphics/Context/webgl-adapter.d.ts +9 -0
  171. package/build/esm/Graphics/Context/webgl-util.d.ts +22 -0
  172. package/build/esm/Graphics/DebugGraphicsComponent.d.ts +13 -0
  173. package/build/esm/Graphics/Filtering.d.ts +15 -0
  174. package/build/esm/Graphics/Font.d.ts +61 -23
  175. package/build/esm/Graphics/FontCommon.d.ts +43 -2
  176. package/build/esm/Graphics/Graphic.d.ts +23 -9
  177. package/build/esm/Graphics/GraphicsSystem.d.ts +0 -1
  178. package/build/esm/Graphics/ImageSource.d.ts +8 -3
  179. package/build/esm/Graphics/Polygon.d.ts +2 -0
  180. package/build/esm/Graphics/PostProcessor/ColorBlindnessMode.d.ts +5 -0
  181. package/build/esm/Graphics/PostProcessor/ColorBlindnessPostProcessor.d.ts +17 -0
  182. package/build/esm/Graphics/PostProcessor/PostProcessor.d.ts +7 -0
  183. package/build/esm/Graphics/PostProcessor/ScreenShader.d.ts +16 -0
  184. package/build/esm/Graphics/Raster.d.ts +32 -5
  185. package/build/esm/Graphics/Sprite.d.ts +5 -0
  186. package/build/esm/Graphics/SpriteFont.d.ts +6 -7
  187. package/build/esm/Graphics/SpriteSheet.d.ts +1 -2
  188. package/build/esm/Graphics/Text.d.ts +18 -2
  189. package/build/esm/Graphics/index.d.ts +14 -0
  190. package/build/esm/Id.d.ts +1 -1
  191. package/build/esm/Input/EngineInput.d.ts +2 -2
  192. package/build/esm/Input/Index.d.ts +10 -3
  193. package/build/esm/Input/NativePointerButton.d.ts +10 -0
  194. package/build/esm/Input/PointerAbstraction.d.ts +33 -0
  195. package/build/esm/Input/PointerButton.d.ts +10 -0
  196. package/build/esm/Input/PointerComponent.d.ts +24 -0
  197. package/build/esm/Input/PointerEvent.d.ts +18 -0
  198. package/build/esm/Input/PointerEventReceiver.d.ts +114 -0
  199. package/build/esm/Input/PointerScope.d.ts +14 -0
  200. package/build/esm/Input/PointerSystem.d.ts +43 -0
  201. package/build/esm/Input/PointerType.d.ts +9 -0
  202. package/build/esm/Input/WheelDeltaMode.d.ts +5 -0
  203. package/build/esm/Input/WheelEvent.d.ts +18 -0
  204. package/build/esm/Interfaces/PointerEventHandlers.d.ts +17 -16
  205. package/build/esm/Label.d.ts +9 -2
  206. package/build/esm/Loader.d.ts +5 -2
  207. package/build/esm/Math/Index.d.ts +1 -0
  208. package/build/esm/Math/matrix.d.ts +19 -1
  209. package/build/esm/Math/util.d.ts +45 -0
  210. package/build/esm/Particles.d.ts +12 -0
  211. package/build/esm/Resources/Gif.d.ts +1 -1
  212. package/build/esm/Scene.d.ts +10 -1
  213. package/build/esm/Screen.d.ts +4 -3
  214. package/build/esm/TileMap.d.ts +3 -2
  215. package/build/esm/Traits/Index.d.ts +0 -1
  216. package/build/esm/Trigger.d.ts +4 -0
  217. package/build/esm/Util/Clock.d.ts +118 -0
  218. package/build/esm/Util/Fps.d.ts +40 -0
  219. package/build/esm/Util/Observable.d.ts +1 -1
  220. package/build/esm/Util/Pool.d.ts +2 -10
  221. package/build/esm/Util/Util.d.ts +23 -66
  222. package/build/esm/excalibur.js +9001 -7438
  223. package/build/esm/excalibur.js.map +1 -1
  224. package/build/esm/excalibur.min.js +1 -1
  225. package/build/esm/excalibur.min.js.LICENSE.txt +2 -2
  226. package/build/esm/excalibur.min.js.map +1 -1
  227. package/build/esm/index.d.ts +5 -2
  228. package/package.json +31 -27
  229. package/build/dist/Graphics/Context/batch.d.ts +0 -11
  230. package/build/dist/Graphics/Context/draw-image-command.d.ts +0 -47
  231. package/build/dist/Graphics/Context/image-renderer.d.ts +0 -39
  232. package/build/dist/Graphics/Context/line-renderer.d.ts +0 -22
  233. package/build/dist/Graphics/Context/point-renderer.d.ts +0 -22
  234. package/build/dist/Graphics/Context/shaders/image-fragment.glsl +0 -48
  235. package/build/dist/Input/Pointer.d.ts +0 -134
  236. package/build/dist/Input/PointerEvents.d.ts +0 -170
  237. package/build/dist/Input/Pointers.d.ts +0 -78
  238. package/build/dist/PostProcessing/ColorBlindCorrector.d.ts +0 -28
  239. package/build/dist/PostProcessing/Index.d.ts +0 -2
  240. package/build/dist/PostProcessing/PostProcessor.d.ts +0 -6
  241. package/build/dist/Traits/CapturePointer.d.ts +0 -10
  242. package/build/esm/Graphics/Context/batch.d.ts +0 -11
  243. package/build/esm/Graphics/Context/draw-image-command.d.ts +0 -47
  244. package/build/esm/Graphics/Context/image-renderer.d.ts +0 -39
  245. package/build/esm/Graphics/Context/line-renderer.d.ts +0 -22
  246. package/build/esm/Graphics/Context/point-renderer.d.ts +0 -22
  247. package/build/esm/Input/Pointer.d.ts +0 -134
  248. package/build/esm/Input/PointerEvents.d.ts +0 -170
  249. package/build/esm/Input/Pointers.d.ts +0 -78
  250. package/build/esm/PostProcessing/ColorBlindCorrector.d.ts +0 -28
  251. package/build/esm/PostProcessing/Index.d.ts +0 -2
  252. package/build/esm/PostProcessing/PostProcessor.d.ts +0 -6
  253. package/build/esm/Traits/CapturePointer.d.ts +0 -10
  254. package/wallaby.js +0 -77
@@ -5,6 +5,7 @@ export * from './GraphicsGroup';
5
5
  export * from './ImageSource';
6
6
  export * from './Animation';
7
7
  export * from './GraphicsComponent';
8
+ export * from './DebugGraphicsComponent';
8
9
  export * from './GraphicsSystem';
9
10
  export * from './Raster';
10
11
  export * from './Circle';
@@ -19,3 +20,16 @@ export * from './Context/ExcaliburGraphicsContext';
19
20
  export * from './Context/ExcaliburGraphicsContext2DCanvas';
20
21
  export * from './Context/ExcaliburGraphicsContextWebGL';
21
22
  export * from './Context/debug-text';
23
+ export * from './PostProcessor/PostProcessor';
24
+ export * from './PostProcessor/ScreenShader';
25
+ export * from './PostProcessor/ColorBlindnessMode';
26
+ export * from './PostProcessor/ColorBlindnessPostProcessor';
27
+ export * from './Context/texture-loader';
28
+ export * from './Filtering';
29
+ export * from './Context/shader';
30
+ export * from './Context/vertex-buffer';
31
+ export * from './Context/vertex-layout';
32
+ export * from './Context/quad-index-buffer';
33
+ export * from './Context/webgl-adapter';
34
+ import * as webgl from './Context/webgl-util';
35
+ export { webgl };
@@ -3,6 +3,6 @@ export declare type Id<T extends string> = {
3
3
  value: number;
4
4
  };
5
5
  /**
6
- *
6
+ * Create a branded ID type from a number
7
7
  */
8
8
  export declare function createId<T extends string>(type: T, value: number): Id<T>;
@@ -1,8 +1,8 @@
1
1
  import { Keyboard } from './Keyboard';
2
2
  import { Gamepads } from './Gamepad';
3
- import { Pointers } from './Pointers';
3
+ import { PointerEventReceiver } from './PointerEventReceiver';
4
4
  export interface EngineInput {
5
5
  keyboard: Keyboard;
6
- pointers: Pointers;
6
+ pointers: PointerEventReceiver;
7
7
  gamepads: Gamepads;
8
8
  }
@@ -6,9 +6,16 @@
6
6
  * @typedoc
7
7
  */
8
8
  export * from './Gamepad';
9
- export * from './Pointer';
10
- export * from './Pointers';
11
- export * from './PointerEvents';
9
+ export * from './PointerScope';
10
+ export * from './PointerType';
11
+ export * from './PointerSystem';
12
+ export * from './PointerComponent';
13
+ export * from './PointerEventReceiver';
12
14
  export * from './Keyboard';
13
15
  export * from './EngineInput';
14
16
  export * from './CapturePointerConfig';
17
+ export * from './NativePointerButton';
18
+ export * from './PointerButton';
19
+ export * from './WheelDeltaMode';
20
+ export * from './PointerEvent';
21
+ export * from './WheelEvent';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Native browser button enumeration
3
+ */
4
+ export declare enum NativePointerButton {
5
+ NoButton = -1,
6
+ Left = 0,
7
+ Middle = 1,
8
+ Right = 2,
9
+ Unknown = 3
10
+ }
@@ -0,0 +1,33 @@
1
+ import { Class } from '../Class';
2
+ import { Vector } from '../Math/vector';
3
+ import { WheelEvent } from './WheelEvent';
4
+ import { PointerEvent } from './PointerEvent';
5
+ export declare class PointerAbstraction extends Class {
6
+ /**
7
+ * The last position on the document this pointer was at. Can be `null` if pointer was never active.
8
+ */
9
+ lastPagePos: Vector;
10
+ /**
11
+ * The last position on the screen this pointer was at. Can be `null` if pointer was never active.
12
+ */
13
+ lastScreenPos: Vector;
14
+ /**
15
+ * The last position in the game world coordinates this pointer was at. Can be `null` if pointer was never active.
16
+ */
17
+ lastWorldPos: Vector;
18
+ constructor();
19
+ on(event: 'move', handler: (event: PointerEvent) => void): void;
20
+ on(event: 'down', handler: (event: PointerEvent) => void): void;
21
+ on(event: 'up', handler: (event: PointerEvent) => void): void;
22
+ on(event: 'wheel', handler: (event: WheelEvent) => void): void;
23
+ once(event: 'move', handler: (event: PointerEvent) => void): void;
24
+ once(event: 'down', handler: (event: PointerEvent) => void): void;
25
+ once(event: 'up', handler: (event: PointerEvent) => void): void;
26
+ once(event: 'wheel', handler: (event: WheelEvent) => void): void;
27
+ off(event: 'move', handler?: (event: PointerEvent) => void): void;
28
+ off(event: 'down', handler?: (event: PointerEvent) => void): void;
29
+ off(event: 'up', handler?: (event: PointerEvent) => void): void;
30
+ off(event: 'wheel', handler?: (event: WheelEvent) => void): void;
31
+ private _onPointerMove;
32
+ private _onPointerDown;
33
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The mouse button being pressed.
3
+ */
4
+ export declare enum PointerButton {
5
+ Left = "Left",
6
+ Middle = "Middle",
7
+ Right = "Right",
8
+ Unknown = "Unknown",
9
+ NoButton = "NoButton"
10
+ }
@@ -0,0 +1,24 @@
1
+ import { Component } from '../EntityComponentSystem/Component';
2
+ /**
3
+ * Add this component to optionally configure how the pointer
4
+ * system detects pointer events.
5
+ *
6
+ * By default the collider shape is used and graphics bounds is not.
7
+ *
8
+ * If both collider shape and graphics bounds are enabled it will fire events if either or
9
+ * are intersecting the pointer.
10
+ */
11
+ export declare class PointerComponent extends Component<'ex.pointer'> {
12
+ readonly type = "ex.pointer";
13
+ /**
14
+ * Use any existing Collider component geometry for pointer events. This is useful if you want
15
+ * user pointer events only to trigger on the same collision geometry used in the collider component
16
+ * for collision resolution. Default is `true`.
17
+ */
18
+ useColliderShape: boolean;
19
+ /**
20
+ * Use any existing Graphics component bounds for pointers. This is useful if you want the axis aligned
21
+ * bounds around the graphic to trigger pointer events. Default is `false`.
22
+ */
23
+ useGraphicsBounds: boolean;
24
+ }
@@ -0,0 +1,18 @@
1
+ import { GlobalCoordinates } from '../Math/global-coordinates';
2
+ import { Vector } from '../Math/vector';
3
+ import { PointerButton } from './PointerButton';
4
+ import { PointerType } from './PointerType';
5
+ export declare class PointerEvent {
6
+ type: 'down' | 'up' | 'move' | 'cancel';
7
+ pointerId: number;
8
+ button: PointerButton;
9
+ pointerType: PointerType;
10
+ coordinates: GlobalCoordinates;
11
+ nativeEvent: Event;
12
+ active: boolean;
13
+ cancel(): void;
14
+ get pagePos(): Vector;
15
+ get screenPos(): Vector;
16
+ get worldPos(): Vector;
17
+ constructor(type: 'down' | 'up' | 'move' | 'cancel', pointerId: number, button: PointerButton, pointerType: PointerType, coordinates: GlobalCoordinates, nativeEvent: Event);
18
+ }
@@ -0,0 +1,114 @@
1
+ import { Class } from '../Class';
2
+ import { Engine } from '../Engine';
3
+ import { GlobalCoordinates } from '../Math/global-coordinates';
4
+ import { Vector } from '../Math/vector';
5
+ import { PointerEvent } from './PointerEvent';
6
+ import { WheelEvent } from './WheelEvent';
7
+ import { PointerAbstraction } from './PointerAbstraction';
8
+ export declare type NativePointerEvent = globalThis.PointerEvent;
9
+ export declare type NativeMouseEvent = globalThis.MouseEvent;
10
+ export declare type NativeTouchEvent = globalThis.TouchEvent;
11
+ export declare type NativeWheelEvent = globalThis.WheelEvent;
12
+ /**
13
+ * The PointerEventProcessor is responsible for collecting all the events from the canvas and transforming them into GlobalCoordinates
14
+ */
15
+ export declare class PointerEventReceiver extends Class {
16
+ readonly target: GlobalEventHandlers & EventTarget;
17
+ engine: Engine;
18
+ primary: PointerAbstraction;
19
+ private _activeNativePointerIdsToNormalized;
20
+ lastFramePointerCoords: Map<number, GlobalCoordinates>;
21
+ currentFramePointerCoords: Map<number, GlobalCoordinates>;
22
+ currentFramePointerDown: Map<number, boolean>;
23
+ lastFramePointerDown: Map<number, boolean>;
24
+ currentFrameDown: PointerEvent[];
25
+ currentFrameUp: PointerEvent[];
26
+ currentFrameMove: PointerEvent[];
27
+ currentFrameCancel: PointerEvent[];
28
+ currentFrameWheel: WheelEvent[];
29
+ constructor(target: GlobalEventHandlers & EventTarget, engine: Engine);
30
+ private _pointers;
31
+ /**
32
+ * Locates a specific pointer by id, creates it if it doesn't exist
33
+ * @param index
34
+ */
35
+ at(index: number): PointerAbstraction;
36
+ /**
37
+ * The number of pointers currently being tracked by excalibur
38
+ */
39
+ count(): number;
40
+ /**
41
+ * Is the specified pointer id down this frame
42
+ * @param pointerId
43
+ */
44
+ isDown(pointerId: number): boolean;
45
+ /**
46
+ * Was the specified pointer id down last frame
47
+ * @param pointerId
48
+ */
49
+ wasDown(pointerId: number): boolean;
50
+ /**
51
+ * Whether the Pointer is currently dragging.
52
+ */
53
+ isDragging(pointerId: number): boolean;
54
+ /**
55
+ * Whether the Pointer just started dragging.
56
+ */
57
+ isDragStart(pointerId: number): boolean;
58
+ /**
59
+ * Whether the Pointer just ended dragging.
60
+ */
61
+ isDragEnd(pointerId: number): boolean;
62
+ on(event: 'move', handler: (event: PointerEvent) => void): void;
63
+ on(event: 'down', handler: (event: PointerEvent) => void): void;
64
+ on(event: 'up', handler: (event: PointerEvent) => void): void;
65
+ on(event: 'wheel', handler: (event: WheelEvent) => void): void;
66
+ once(event: 'move', handler: (event: PointerEvent) => void): void;
67
+ once(event: 'down', handler: (event: PointerEvent) => void): void;
68
+ once(event: 'up', handler: (event: PointerEvent) => void): void;
69
+ once(event: 'wheel', handler: (event: WheelEvent) => void): void;
70
+ off(event: 'move', handler?: (event: PointerEvent) => void): void;
71
+ off(event: 'down', handler?: (event: PointerEvent) => void): void;
72
+ off(event: 'up', handler?: (event: PointerEvent) => void): void;
73
+ off(event: 'wheel', handler?: (event: WheelEvent) => void): void;
74
+ /**
75
+ * Called internally by excalibur
76
+ *
77
+ * Updates the current frame pointer info and emits raw pointer events
78
+ *
79
+ * This does not emit events to entities, see PointerSystem
80
+ */
81
+ update(): void;
82
+ /**
83
+ * Clears the current frame event and pointer data
84
+ */
85
+ clear(): void;
86
+ private _boundHandle;
87
+ private _boundWheel;
88
+ /**
89
+ * Initializes the pointer event receiver so that it can start listening to native
90
+ * browser events.
91
+ */
92
+ init(): void;
93
+ detach(): void;
94
+ /**
95
+ * Take native pointer id and map it to index in active pointers
96
+ * @param nativePointerId
97
+ */
98
+ private _normalizePointerId;
99
+ /**
100
+ * Responsible for handling and parsing pointer events
101
+ */
102
+ private _handle;
103
+ private _handleWheel;
104
+ /**
105
+ * Triggers an excalibur pointer event in a world space pos
106
+ *
107
+ * Useful for testing pointers in excalibur
108
+ * @param type
109
+ * @param pos
110
+ */
111
+ triggerEvent(type: 'down' | 'up' | 'move' | 'cancel', pos: Vector): void;
112
+ private _nativeButtonToPointerButton;
113
+ private _stringToPointerType;
114
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Determines the scope of handling mouse/touch events.
3
+ */
4
+ export declare enum PointerScope {
5
+ /**
6
+ * Handle events on the `canvas` element only. Events originating outside the
7
+ * `canvas` will not be handled.
8
+ */
9
+ Canvas = "Canvas",
10
+ /**
11
+ * Handles events on the entire document. All events will be handled by Excalibur.
12
+ */
13
+ Document = "Document"
14
+ }
@@ -0,0 +1,43 @@
1
+ import { System, TransformComponent, SystemType, Entity } from '../EntityComponentSystem';
2
+ import { Scene } from '../Scene';
3
+ import { PointerComponent } from './PointerComponent';
4
+ /**
5
+ * The PointerSystem is responsible for dispatching pointer events to entities
6
+ * that need them.
7
+ *
8
+ * The PointerSystem can be optionally configured by the [[PointerComponent]], by default Entities use
9
+ * the [[Collider]]'s shape for pointer events.
10
+ */
11
+ export declare class PointerSystem extends System<TransformComponent | PointerComponent> {
12
+ readonly types: readonly ["ex.transform", "ex.pointer"];
13
+ readonly systemType = SystemType.Update;
14
+ priority: number;
15
+ private _engine;
16
+ private _receiver;
17
+ /**
18
+ * Optionally override component configuration for all entities
19
+ */
20
+ overrideUseColliderShape: boolean;
21
+ /**
22
+ * Optionally override component configuration for all entities
23
+ */
24
+ overrideUseGraphicsBounds: boolean;
25
+ lastFrameEntityToPointers: Map<number, number[]>;
26
+ currentFrameEntityToPointers: Map<number, number[]>;
27
+ initialize(scene: Scene): void;
28
+ sort(a: Entity, b: Entity): number;
29
+ entityCurrentlyUnderPointer(entity: Entity, pointerId: number): boolean;
30
+ entityWasUnderPointer(entity: Entity, pointerId: number): boolean;
31
+ entered(entity: Entity, pointerId: number): boolean;
32
+ left(entity: Entity, pointerId: number): boolean;
33
+ addPointerToEntity(entity: Entity, pointerId: number): void;
34
+ update(entities: Entity[]): void;
35
+ private _processPointerToEntity;
36
+ private _processDownAndEmit;
37
+ private _processUpAndEmit;
38
+ private _processMoveAndEmit;
39
+ private _processEnterLeaveAndEmit;
40
+ private _processCancelAndEmit;
41
+ private _processWheelAndEmit;
42
+ private _dispatchEvents;
43
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The type of pointer for a [[PointerEvent]].
3
+ */
4
+ export declare enum PointerType {
5
+ Touch = "Touch",
6
+ Mouse = "Mouse",
7
+ Pen = "Pen",
8
+ Unknown = "Unknown"
9
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum WheelDeltaMode {
2
+ Pixel = "Pixel",
3
+ Line = "Line",
4
+ Page = "Page"
5
+ }
@@ -0,0 +1,18 @@
1
+ import { WheelDeltaMode } from './WheelDeltaMode';
2
+ export declare class WheelEvent {
3
+ x: number;
4
+ y: number;
5
+ pageX: number;
6
+ pageY: number;
7
+ screenX: number;
8
+ screenY: number;
9
+ index: number;
10
+ deltaX: number;
11
+ deltaY: number;
12
+ deltaZ: number;
13
+ deltaMode: WheelDeltaMode;
14
+ ev: Event;
15
+ active: boolean;
16
+ cancel(): void;
17
+ constructor(x: number, y: number, pageX: number, pageY: number, screenX: number, screenY: number, index: number, deltaX: number, deltaY: number, deltaZ: number, deltaMode: WheelDeltaMode, ev: Event);
18
+ }
@@ -1,5 +1,6 @@
1
1
  import * as Events from '../Events';
2
- import { PointerEvent, WheelEvent, PointerDragEvent } from '../Input/PointerEvents';
2
+ import { PointerEvent } from '../Input/PointerEvent';
3
+ import { WheelEvent } from '../Input/WheelEvent';
3
4
  export interface PointerEvents {
4
5
  on(eventName: Events.pointerup, handler: (event: PointerEvent) => void): void;
5
6
  on(eventName: Events.pointerdown, handler: (event: PointerEvent) => void): void;
@@ -8,11 +9,11 @@ export interface PointerEvents {
8
9
  on(eventName: Events.pointermove, handler: (event: PointerEvent) => void): void;
9
10
  on(eventName: Events.pointercancel, handler: (event: PointerEvent) => void): void;
10
11
  on(eventName: Events.pointerwheel, handler: (event: WheelEvent) => void): void;
11
- on(eventName: Events.pointerdragstart, handler: (event: PointerDragEvent) => void): void;
12
- on(eventName: Events.pointerdragend, handler: (event: PointerDragEvent) => void): void;
13
- on(eventName: Events.pointerdragenter, handler: (event: PointerDragEvent) => void): void;
14
- on(eventName: Events.pointerdragleave, handler: (event: PointerDragEvent) => void): void;
15
- on(eventName: Events.pointerdragmove, handler: (event: PointerDragEvent) => void): void;
12
+ on(eventName: Events.pointerdragstart, handler: (event: PointerEvent) => void): void;
13
+ on(eventName: Events.pointerdragend, handler: (event: PointerEvent) => void): void;
14
+ on(eventName: Events.pointerdragenter, handler: (event: PointerEvent) => void): void;
15
+ on(eventName: Events.pointerdragleave, handler: (event: PointerEvent) => void): void;
16
+ on(eventName: Events.pointerdragmove, handler: (event: PointerEvent) => void): void;
16
17
  once(eventName: Events.pointerup, handler: (event: PointerEvent) => void): void;
17
18
  once(eventName: Events.pointerdown, handler: (event: PointerEvent) => void): void;
18
19
  once(eventName: Events.pointerenter, handler: (event: PointerEvent) => void): void;
@@ -20,11 +21,11 @@ export interface PointerEvents {
20
21
  once(eventName: Events.pointermove, handler: (event: PointerEvent) => void): void;
21
22
  once(eventName: Events.pointercancel, handler: (event: PointerEvent) => void): void;
22
23
  once(eventName: Events.pointerwheel, handler: (event: WheelEvent) => void): void;
23
- once(eventName: Events.pointerdragstart, handler: (event: PointerDragEvent) => void): void;
24
- once(eventName: Events.pointerdragend, handler: (event: PointerDragEvent) => void): void;
25
- once(eventName: Events.pointerdragenter, handler: (event: PointerDragEvent) => void): void;
26
- once(eventName: Events.pointerdragleave, handler: (event: PointerDragEvent) => void): void;
27
- once(eventName: Events.pointerdragmove, handler: (event: PointerDragEvent) => void): void;
24
+ once(eventName: Events.pointerdragstart, handler: (event: PointerEvent) => void): void;
25
+ once(eventName: Events.pointerdragend, handler: (event: PointerEvent) => void): void;
26
+ once(eventName: Events.pointerdragenter, handler: (event: PointerEvent) => void): void;
27
+ once(eventName: Events.pointerdragleave, handler: (event: PointerEvent) => void): void;
28
+ once(eventName: Events.pointerdragmove, handler: (event: PointerEvent) => void): void;
28
29
  off(eventName: Events.pointerup, handler?: (event: PointerEvent) => void): void;
29
30
  off(eventName: Events.pointerdown, handler?: (event: PointerEvent) => void): void;
30
31
  off(eventName: Events.pointerenter, handler?: (event: PointerEvent) => void): void;
@@ -32,9 +33,9 @@ export interface PointerEvents {
32
33
  off(eventName: Events.pointermove, handler?: (event: PointerEvent) => void): void;
33
34
  off(eventName: Events.pointercancel, handler?: (event: PointerEvent) => void): void;
34
35
  off(eventName: Events.pointerwheel, handler?: (event: WheelEvent) => void): void;
35
- off(eventName: Events.pointerdragstart, handler?: (event: PointerDragEvent) => void): void;
36
- off(eventName: Events.pointerdragend, handler?: (event: PointerDragEvent) => void): void;
37
- off(eventName: Events.pointerdragenter, handler?: (event: PointerDragEvent) => void): void;
38
- off(eventName: Events.pointerdragleave, handler?: (event: PointerDragEvent) => void): void;
39
- off(eventName: Events.pointerdragmove, handler?: (event: PointerDragEvent) => void): void;
36
+ off(eventName: Events.pointerdragstart, handler?: (event: PointerEvent) => void): void;
37
+ off(eventName: Events.pointerdragend, handler?: (event: PointerEvent) => void): void;
38
+ off(eventName: Events.pointerdragenter, handler?: (event: PointerEvent) => void): void;
39
+ off(eventName: Events.pointerdragleave, handler?: (event: PointerEvent) => void): void;
40
+ off(eventName: Events.pointerdragmove, handler?: (event: PointerEvent) => void): void;
40
41
  }
@@ -36,8 +36,10 @@ export interface LabelOptions {
36
36
  * actors and inherit all of the benefits and capabilities.
37
37
  */
38
38
  export declare class Label extends Actor {
39
- font: Font;
39
+ private _font;
40
40
  private _text;
41
+ get font(): Font;
42
+ set font(newFont: Font);
41
43
  /**
42
44
  * The text to draw.
43
45
  */
@@ -110,7 +112,7 @@ export declare class Label extends Actor {
110
112
  letterSpacing: number;
111
113
  /**
112
114
  * Whether or not the [[SpriteFont]] will be case-sensitive when matching characters.
113
- * @deprecated Use Graphics.SpriteFont.caseInsensitve
115
+ * @deprecated Use Graphics.SpriteFont.caseInsensitive
114
116
  */
115
117
  caseInsensitive: boolean;
116
118
  private _graphicsContext;
@@ -142,5 +144,10 @@ export declare class Label extends Actor {
142
144
  * @deprecated Use [[Font.shadow|Label.font.shadow]]
143
145
  */
144
146
  clearTextShadow(): void;
147
+ /**
148
+ * @deprecated signature will change in v0.26.0
149
+ * @param _ctx
150
+ * @param _delta
151
+ */
145
152
  draw(_ctx: CanvasRenderingContext2D, _delta: number): void;
146
153
  }
@@ -154,14 +154,17 @@ export declare class Loader extends Class implements Loadable<Loadable<any>[]> {
154
154
  dispose(): void;
155
155
  update(_engine: Engine, _delta: number): void;
156
156
  data: Loadable<any>[];
157
+ private _isLoadedResolve;
158
+ private _isLoadedPromise;
159
+ areResourcesLoaded(): Promise<void>;
157
160
  /**
158
161
  * Begin loading all of the supplied resources, returning a promise
159
- * that resolves when loading of all is complete
162
+ * that resolves when loading of all is complete AND the user has clicked the "Play button"
160
163
  */
161
164
  load(): Promise<Loadable<any>[]>;
162
165
  markResourceComplete(): void;
163
166
  /**
164
- * Returns the progess of the loader as a number between [0, 1] inclusive.
167
+ * Returns the progress of the loader as a number between [0, 1] inclusive.
165
168
  */
166
169
  get progress(): number;
167
170
  private _positionPlayButton;
@@ -6,3 +6,4 @@ export * from './global-coordinates';
6
6
  export * from './line';
7
7
  export * from './projection';
8
8
  export * from './ray';
9
+ export * from './util';
@@ -36,10 +36,22 @@ export declare class Matrix {
36
36
  * Creates a new Matrix with the same data as the current 4x4
37
37
  */
38
38
  clone(): Matrix;
39
+ /**
40
+ * Converts the current matrix into a DOMMatrix
41
+ *
42
+ * This is useful when working with the browser Canvas context
43
+ * @returns {DOMMatrix} DOMMatrix
44
+ */
45
+ toDOMMatrix(): DOMMatrix;
39
46
  /**
40
47
  * Creates a new identity matrix (a matrix that when applied does nothing)
41
48
  */
42
49
  static identity(): Matrix;
50
+ /**
51
+ * Resets the current matrix to the identity matrix, mutating it
52
+ * @returns {Matrix} Current matrix as identity
53
+ */
54
+ reset(): Matrix;
43
55
  /**
44
56
  * Creates a brand new translation matrix at the specified 3d point
45
57
  * @param x
@@ -104,7 +116,13 @@ export declare class Matrix {
104
116
  * Determinant of the upper left 2x2 matrix
105
117
  */
106
118
  getBasisDeterminant(): number;
107
- getAffineInverse(): Matrix;
119
+ /**
120
+ * Return the affine inverse, optionally store it in a target matrix.
121
+ *
122
+ * It's recommended you call .reset() the target unless you know what you're doing
123
+ * @param target
124
+ */
125
+ getAffineInverse(target?: Matrix): Matrix;
108
126
  isIdentity(): boolean;
109
127
  toString(): string;
110
128
  }
@@ -0,0 +1,45 @@
1
+ import { Random } from './Random';
2
+ /**
3
+ * Two PI constant
4
+ */
5
+ export declare const TwoPI: number;
6
+ /**
7
+ * Returns the fractional part of a number
8
+ * @param x
9
+ */
10
+ export declare function frac(x: number): number;
11
+ /**
12
+ * Returns the sign of a number, if 0 returns 0
13
+ */
14
+ export declare function sign(val: number): number;
15
+ /**
16
+ * Clamps a value between a min and max inclusive
17
+ */
18
+ export declare function clamp(val: number, min: number, max: number): number;
19
+ /**
20
+ * Convert an angle to be the equivalent in the range [0, 2PI]
21
+ */
22
+ export declare function canonicalizeAngle(angle: number): number;
23
+ /**
24
+ * Convert radians to degrees
25
+ */
26
+ export declare function toDegrees(radians: number): number;
27
+ /**
28
+ * Convert degrees to radians
29
+ */
30
+ export declare function toRadians(degrees: number): number;
31
+ /**
32
+ * Generate a range of numbers
33
+ * For example: range(0, 5) -> [0, 1, 2, 3, 4, 5]
34
+ * @param from inclusive
35
+ * @param to inclusive
36
+ */
37
+ export declare const range: (from: number, to: number) => number[];
38
+ /**
39
+ * Find a random floating point number in range
40
+ */
41
+ export declare function randomInRange(min: number, max: number, random?: Random): number;
42
+ /**
43
+ * Find a random integer in a range
44
+ */
45
+ export declare function randomIntInRange(min: number, max: number, random?: Random): number;
@@ -55,6 +55,10 @@ export declare class ParticleImpl extends Entity {
55
55
  constructor(emitterOrConfig: ParticleEmitter | ParticleArgs, life?: number, opacity?: number, beginColor?: Color, endColor?: Color, position?: Vector, velocity?: Vector, acceleration?: Vector, startSize?: number, endSize?: number);
56
56
  kill(): void;
57
57
  update(_engine: Engine, delta: number): void;
58
+ /**
59
+ * @deprecated signature will change in v0.26.0
60
+ * @param ctx
61
+ */
58
62
  draw(ctx: CanvasRenderingContext2D): void;
59
63
  }
60
64
  export interface ParticleArgs extends Partial<ParticleImpl> {
@@ -238,7 +242,15 @@ export declare class ParticleEmitter extends Actor {
238
242
  clearParticles(): void;
239
243
  private _createParticle;
240
244
  update(engine: Engine, delta: number): void;
245
+ /**
246
+ * @deprecated signature will change in v0.26.0
247
+ * @param ctx
248
+ */
241
249
  draw(ctx: CanvasRenderingContext2D): void;
250
+ /**
251
+ * @deprecated signature will change in v0.26.0
252
+ * @param ctx
253
+ */
242
254
  debugDraw(ctx: CanvasRenderingContext2D): void;
243
255
  }
244
256
  export {};
@@ -49,12 +49,12 @@ export declare class Gif implements Loadable<ImageSource[]> {
49
49
  /**
50
50
  * Return the gif as a legacy spritesheet
51
51
  * @deprecated
52
- * @returns
53
52
  */
54
53
  toLegacySpriteSheet(): LegacyDrawing.SpriteSheet;
55
54
  /**
56
55
  * Return the gif as a legacy animation
57
56
  * @deprecated
57
+ * @param engine
58
58
  * @param speed
59
59
  */
60
60
  toLegacyAnimation(engine: Engine, speed: number): LegacyDrawing.Animation;