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
@@ -31,7 +31,6 @@ export * from './Collision/Index';
31
31
  import * as legacyDrawing from './Drawing/Index';
32
32
  export { legacyDrawing as LegacyDrawing };
33
33
  export * from './Interfaces/Index';
34
- export * from './PostProcessing/Index';
35
34
  export * from './Resources/Index';
36
35
  export * from './EntityComponentSystem/index';
37
36
  export * from './Color';
@@ -40,11 +39,12 @@ import * as events from './Events';
40
39
  export { events as Events };
41
40
  import * as input from './Input/Index';
42
41
  export { input as Input };
42
+ export { PointerComponent } from './Input/Index';
43
+ export { PointerSystem } from './Input/PointerSystem';
43
44
  import * as traits from './Traits/Index';
44
45
  export { traits as Traits };
45
46
  import * as util from './Util/Index';
46
47
  export { util as Util };
47
- export { clamp, range, toDegrees, toRadians, randomInRange, randomIntInRange, canonicalizeAngle } from './Util/Index';
48
48
  export * from './Util/Browser';
49
49
  export * from './Util/Decorators';
50
50
  export * from './Util/Detector';
@@ -54,4 +54,7 @@ export * from './Util/Observable';
54
54
  export * from './Util/Log';
55
55
  export * from './Util/SortedList';
56
56
  export * from './Util/Pool';
57
+ export * from './Util/Fps';
58
+ export * from './Util/Clock';
59
+ export * from './Util/WebAudio';
57
60
  export * from './Promises';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "excalibur",
3
3
  "sideEffects": false,
4
- "version": "0.25.1",
4
+ "version": "0.25.2",
5
5
  "exNextVersion": "0.26.0",
6
6
  "description": "Excalibur.js is a simple JavaScript game engine with TypeScript bindings for making 2D games in HTML5 Canvas. Our mission is to make web game development as simple as possible.",
7
7
  "author": "https://github.com/excaliburjs/Excalibur/graphs/contributors",
@@ -30,6 +30,7 @@
30
30
  "clean": "rimraf .tsbuildinfo ./build/dist ./build ./src/spec/*.js ./src/spec/*.map",
31
31
  "linux:ci": "npm run clean && npm run all && npm run coveralls && npm run apidocs",
32
32
  "appveyor": "npm run all && npm run nuget 0.0.1",
33
+ "browserstack": "karma start karma.conf.browsers.js",
33
34
  "nuget": ".\\src\\tools\\NuGet.exe pack Excalibur.nuspec -OutputDirectory .\\build\\dist -version",
34
35
  "start": "npm run core:watch",
35
36
  "build": "npm run core",
@@ -58,58 +59,61 @@
58
59
  "release": "node scripts/release.js"
59
60
  },
60
61
  "devDependencies": {
61
- "@babel/core": "7.16.0",
62
+ "@babel/core": "7.16.7",
62
63
  "@fortawesome/fontawesome-free": "5.15.4",
63
64
  "@octokit/rest": "18.12.0",
64
- "@storybook/addon-actions": "6.3.12",
65
- "@storybook/addon-essentials": "6.3.12",
66
- "@storybook/addon-links": "6.3.12",
67
- "@storybook/builder-webpack5": "6.4.0-beta.23",
68
- "@storybook/html": "6.3.12",
69
- "@storybook/manager-webpack5": "6.4.0-beta.23",
70
- "@types/jasmine": "3.10.1",
71
- "@types/node": "14.17.32",
65
+ "@storybook/addon-actions": "6.4.9",
66
+ "@storybook/addon-essentials": "6.4.9",
67
+ "@storybook/addon-links": "6.4.9",
68
+ "@storybook/builder-webpack5": "6.4.9",
69
+ "@storybook/html": "6.4.9",
70
+ "@storybook/manager-webpack5": "6.4.9",
71
+ "@types/jasmine": "3.10.3",
72
+ "@types/node": "16.11.20",
72
73
  "@types/react-color": "3.0.6",
73
74
  "@types/webpack-env": "1.16.3",
74
- "@typescript-eslint/eslint-plugin": "4.32.0",
75
- "@typescript-eslint/parser": "4.32.0",
75
+ "@typescript-eslint/eslint-plugin": "5.9.0",
76
+ "@typescript-eslint/parser": "5.9.0",
76
77
  "babel-loader": "8.2.3",
77
- "copy-webpack-plugin": "9.0.1",
78
+ "copy-webpack-plugin": "10.2.0",
78
79
  "copyfiles": "2.4.1",
79
80
  "coveralls": "3.1.1",
80
- "css-loader": "6.5.0",
81
- "eslint": "7.32.0",
81
+ "css-loader": "6.5.1",
82
+ "eslint": "8.6.0",
82
83
  "eslint-config-prettier": "8.3.0",
83
- "eslint-plugin-jsdoc": "36.1.1",
84
+ "eslint-plugin-jsdoc": "37.6.1",
84
85
  "excalibur-jasmine": "0.2.0",
85
86
  "istanbul": "0.4.5",
86
87
  "istanbul-instrumenter-loader": "3.0.1",
87
- "jasmine": "3.9.0",
88
- "jasmine-core": "3.9.0",
89
- "karma": "6.3.7",
88
+ "jasmine": "4.0.2",
89
+ "jasmine-core": "4.0.0",
90
+ "karma": "6.3.11",
91
+ "karma-browserstack-launcher": "1.6.0",
90
92
  "karma-chrome-launcher": "3.1.0",
91
- "karma-coverage": "2.0.3",
93
+ "karma-coverage": "2.1.0",
92
94
  "karma-coverage-istanbul-reporter": "3.0.3",
93
95
  "karma-jasmine": "4.0.1",
96
+ "karma-summary-reporter": "3.0.0",
94
97
  "karma-webpack": "5.0.0",
95
98
  "puppeteer": "10.4.0",
96
- "replace-in-file": "6.3.2",
97
99
  "react": "17.0.2",
98
100
  "react-dom": "17.0.2",
101
+ "replace-in-file": "6.3.2",
99
102
  "rimraf": "3.0.2",
100
103
  "semver": "7.3.5",
101
- "serve": "12.0.1",
102
- "source-map-support": "0.5.20",
104
+ "serve": "13.0.2",
105
+ "source-map-support": "0.5.21",
103
106
  "sync-request": "6.1.0",
107
+ "terser-webpack-plugin": "5.3.0",
104
108
  "ts-loader": "9.2.6",
105
- "typedoc": "0.22.7",
106
- "typescript": "4.4.4",
109
+ "typedoc": "0.22.10",
110
+ "typescript": "4.5.4",
107
111
  "url-loader": "4.1.1",
108
112
  "wallaby-webpack": "3.9.16",
109
- "webpack": "5.61.0",
113
+ "webpack": "5.66.0",
110
114
  "webpack-cli": "4.9.1"
111
115
  },
112
116
  "dependencies": {
113
- "core-js": "3.19.0"
117
+ "core-js": "3.20.2"
114
118
  }
115
119
  }
@@ -1,11 +0,0 @@
1
- import { Pool, Poolable } from '../../Util/Pool';
2
- export declare class BatchCommand<T> implements Poolable {
3
- max: number;
4
- _pool: Pool<this>;
5
- commands: T[];
6
- constructor(max: number);
7
- isFull(): boolean;
8
- canAdd(): boolean;
9
- add(cmd: T): void;
10
- dispose(): this;
11
- }
@@ -1,47 +0,0 @@
1
- import { Matrix } from '../../Math/matrix';
2
- import { BoundingBox } from '../../Collision/Index';
3
- import { Color } from '../../Color';
4
- import { Pool, Poolable } from '../../Util/Pool';
5
- import { HTMLImageSource } from './ExcaliburGraphicsContext';
6
- import { Vector } from '../../Math/vector';
7
- export declare enum DrawCommandType {
8
- Image = "image",
9
- Line = "line",
10
- Rectangle = "rectangle",
11
- Circle = "circle"
12
- }
13
- export declare class DrawImageCommand implements Poolable {
14
- _pool: Pool<this>;
15
- snapToPixel: boolean;
16
- image: HTMLImageSource;
17
- color: Color;
18
- type: DrawCommandType;
19
- opacity: number;
20
- width: number;
21
- height: number;
22
- dest: [number, number];
23
- view: [number, number, number, number];
24
- private _geom;
25
- constructor();
26
- constructor(image: HTMLImageSource, x: number, y: number);
27
- constructor(image: HTMLImageSource, x: number, y: number, width?: number, height?: number);
28
- constructor(image: HTMLImageSource, sx: number, sy: number, swidth?: number, sheight?: number, dx?: number, dy?: number, dwidth?: number, dheight?: number);
29
- init(image?: HTMLImageSource, sx?: number, sy?: number, swidth?: number, sheight?: number, dx?: number, dy?: number, dwidth?: number, dheight?: number): this;
30
- initRect(color: Color, start: Vector, width: number, height: number): this;
31
- initLine(color: Color, start: Vector, end: Vector, thickness: number): this;
32
- initCircle(pos: Vector, radius: number, color: Color): this;
33
- dispose(): this;
34
- applyTransform(transform: Matrix, opacity: number): void;
35
- get geometry(): [number, number][];
36
- }
37
- export declare class DrawRectCommand {
38
- dest: [number, number];
39
- width: number;
40
- height: number;
41
- constructor(x: number, y: number, width: number, height: number);
42
- }
43
- export declare class DrawDebugRectCommand {
44
- bounds: BoundingBox;
45
- color: Color;
46
- constructor(bounds: BoundingBox, color: Color);
47
- }
@@ -1,39 +0,0 @@
1
- import { Shader } from './shader';
2
- import { BatchCommand } from './batch';
3
- import { DrawImageCommand } from './draw-image-command';
4
- import { BatchRenderer } from './renderer';
5
- import { WebGLGraphicsContextInfo } from './ExcaliburGraphicsContextWebGL';
6
- import { HTMLImageSource } from './ExcaliburGraphicsContext';
7
- import { Color } from '../../Color';
8
- import { Vector } from '../..';
9
- export declare class BatchImage extends BatchCommand<DrawImageCommand> {
10
- maxDraws: number;
11
- maxTextures: number;
12
- textures: WebGLTexture[];
13
- commands: DrawImageCommand[];
14
- private _graphicMap;
15
- constructor(maxDraws: number, maxTextures: number);
16
- isFull(): boolean;
17
- canAdd(): boolean;
18
- private _isCommandFull;
19
- private _isTextureFull;
20
- private _wouldAddTexture;
21
- maybeAdd(command: DrawImageCommand): boolean;
22
- add(command: DrawImageCommand): void;
23
- bindTextures(gl: WebGLRenderingContext): void;
24
- getBatchTextureId(command: DrawImageCommand): number;
25
- dispose(): this;
26
- clear(): void;
27
- }
28
- export declare class ImageRenderer extends BatchRenderer<DrawImageCommand> {
29
- private _contextInfo;
30
- constructor(gl: WebGLRenderingContext, _contextInfo: WebGLGraphicsContextInfo);
31
- buildShader(gl: WebGLRenderingContext): Shader;
32
- private _transformFragmentSource;
33
- addCircle(pos: Vector, radius: number, color: Color): void;
34
- addRectangle(color: Color, pos: Vector, width: number, height: number): void;
35
- addLine(color: Color, start: Vector, end: Vector, thickness?: number): void;
36
- addImage(graphic: HTMLImageSource, sx: number, sy: number, swidth?: number, sheight?: number, dx?: number, dy?: number, dwidth?: number, dheight?: number): void;
37
- renderBatch(gl: WebGLRenderingContext, batch: BatchImage, vertexCount: number): void;
38
- buildBatchVertices(vertexBuffer: Float32Array, batch: BatchImage): number;
39
- }
@@ -1,22 +0,0 @@
1
- import { Vector } from '../../Math/vector';
2
- import { Color } from '../../Color';
3
- import { Shader } from './shader';
4
- import { BatchRenderer } from './renderer';
5
- import { BatchCommand } from './batch';
6
- import { WebGLGraphicsContextInfo } from './ExcaliburGraphicsContextWebGL';
7
- import { Pool, Poolable } from '../../Util/Pool';
8
- export declare class DrawLine implements Poolable {
9
- _pool?: Pool<this>;
10
- color: Color;
11
- start: Vector;
12
- end: Vector;
13
- dispose(): this;
14
- }
15
- export declare class LineRenderer extends BatchRenderer<DrawLine> {
16
- private _contextInfo;
17
- constructor(gl: WebGLRenderingContext, _contextInfo: WebGLGraphicsContextInfo);
18
- buildShader(gl: WebGLRenderingContext): Shader;
19
- addLine(start: Vector, end: Vector, color: Color): void;
20
- buildBatchVertices(vertexBuffer: Float32Array, batch: BatchCommand<DrawLine>): number;
21
- renderBatch(gl: WebGLRenderingContext, _batch: BatchCommand<DrawLine>, vertexCount: number): void;
22
- }
@@ -1,22 +0,0 @@
1
- import { Shader } from './shader';
2
- import { Vector } from '../../Math/vector';
3
- import { Color } from '../../Color';
4
- import { BatchRenderer } from './renderer';
5
- import { BatchCommand } from './batch';
6
- import { WebGLGraphicsContextInfo } from './ExcaliburGraphicsContextWebGL';
7
- import { Pool, Poolable } from '../../Util/Pool';
8
- export declare class DrawPoint implements Poolable {
9
- _pool?: Pool<this>;
10
- point: Vector;
11
- color: Color;
12
- size: number;
13
- dispose(): this;
14
- }
15
- export declare class PointRenderer extends BatchRenderer<DrawPoint> {
16
- private _contextInfo;
17
- constructor(gl: WebGLRenderingContext, _contextInfo: WebGLGraphicsContextInfo);
18
- buildShader(gl: WebGLRenderingContext): Shader;
19
- addPoint(point: Vector, color: Color, size: number): void;
20
- buildBatchVertices(vertexBuffer: Float32Array, batch: BatchCommand<DrawPoint>): number;
21
- renderBatch(gl: WebGLRenderingContext, _batch: BatchCommand<DrawPoint>, vertexCount: number): void;
22
- }
@@ -1,48 +0,0 @@
1
- #ifdef GL_OES_standard_derivatives
2
- #extension GL_OES_standard_derivatives : enable
3
- #endif
4
- precision mediump float;
5
-
6
- // UV coord
7
- varying vec2 v_texcoord;
8
-
9
- // Texture index
10
- varying lowp float v_textureIndex;
11
-
12
- // Color coord to blend with image
13
- varying lowp vec4 v_color;
14
-
15
- // Opacity
16
- varying float v_opacity;
17
-
18
- uniform sampler2D u_textures[%%count%%];
19
-
20
- float circle(in vec2 st, in float radius) {
21
- vec2 dist = st - vec2(0.5);
22
- float r = dot(dist, dist) * 4.0;
23
- float delta = fwidth(r);
24
- return 1.0 - smoothstep(radius - delta, radius + delta, r);
25
- }
26
-
27
- void main() {
28
- float r = 0.0, delta = 0.0, alpha = 1.0;
29
- // In order to support the most efficient sprite batching, we have multiple
30
- // textures loaded into the gpu (usually 8) this picker logic skips over textures
31
- // that do not apply to a particular sprite.
32
-
33
- vec4 color;
34
- // -1 If there is no texture to sample we are drawing a solid geometry (rectangles)
35
- if (v_textureIndex == -1.0) {
36
- color = v_color;
37
- color.w = color.w * v_opacity;
38
- // -2 If there is no texture we are drawing a circle
39
- } else if (v_textureIndex == -2.0) {
40
- color = v_color;
41
- color.a = color.a * circle(v_texcoord, .95);
42
- } else {
43
- // GLSL is templated out to pick the right texture and set the vec4 color
44
- %%texture_picker%%
45
- }
46
- color.w = color.w * v_opacity;
47
- gl_FragColor = color;
48
- }
@@ -1,134 +0,0 @@
1
- import { Actor } from '../Actor';
2
- import { Vector } from '../Math/vector';
3
- import { Class } from '../Class';
4
- import { PointerMoveEvent, PointerDownEvent, PointerUpEvent, WheelEvent } from './PointerEvents';
5
- export interface ActorsUnderPointer {
6
- [ActorId: number]: Actor;
7
- length: number;
8
- }
9
- /**
10
- * The type of pointer for a [[PointerEvent]].
11
- */
12
- export declare enum PointerType {
13
- Touch = "Touch",
14
- Mouse = "Mouse",
15
- Pen = "Pen",
16
- Unknown = "Unknown"
17
- }
18
- /**
19
- * Determines the scope of handling mouse/touch events. See [[Pointers]] for more information.
20
- */
21
- export declare enum PointerScope {
22
- /**
23
- * Handle events on the `canvas` element only. Events originating outside the
24
- * `canvas` will not be handled.
25
- */
26
- Canvas = "Canvas",
27
- /**
28
- * Handles events on the entire document. All events will be handled by Excalibur.
29
- */
30
- Document = "Document"
31
- }
32
- /**
33
- * Captures and dispatches PointerEvents
34
- */
35
- export declare class Pointer extends Class {
36
- private static _MAX_ID;
37
- readonly id: number;
38
- private _isDown;
39
- private _wasDown;
40
- private _actorsUnderPointer;
41
- private _actors;
42
- private _actorsLastFrame;
43
- private _actorsNoLongerUnderPointer;
44
- private _actorSortingFcn;
45
- /**
46
- * Whether the Pointer is currently dragging.
47
- */
48
- get isDragging(): boolean;
49
- /**
50
- * Whether the Pointer just started dragging.
51
- */
52
- get isDragStart(): boolean;
53
- /**
54
- * Whether the Pointer just ended dragging.
55
- */
56
- get isDragEnd(): boolean;
57
- /**
58
- * Returns true if pointer has any actors under
59
- */
60
- get hasActorsUnderPointer(): boolean;
61
- /**
62
- * The last position on the document this pointer was at. Can be `null` if pointer was never active.
63
- */
64
- lastPagePos: Vector;
65
- /**
66
- * The last position on the screen this pointer was at. Can be `null` if pointer was never active.
67
- */
68
- lastScreenPos: Vector;
69
- /**
70
- * The last position in the game world coordinates this pointer was at. Can be `null` if pointer was never active.
71
- */
72
- lastWorldPos: Vector;
73
- /**
74
- * Returns the currently dragging target or null if it isn't exist
75
- */
76
- dragTarget: Actor;
77
- constructor();
78
- on(event: 'move', handler: (event: PointerMoveEvent) => void): void;
79
- on(event: 'down', handler: (event: PointerDownEvent) => void): void;
80
- on(event: 'up', handler: (event: PointerUpEvent) => void): void;
81
- on(event: 'wheel', handler: (event: WheelEvent) => void): void;
82
- once(event: 'move', handler: (event: PointerMoveEvent) => void): void;
83
- once(event: 'down', handler: (event: PointerDownEvent) => void): void;
84
- once(event: 'up', handler: (event: PointerUpEvent) => void): void;
85
- once(event: 'wheel', handler: (event: WheelEvent) => void): void;
86
- off(event: 'move', handler?: (event: PointerMoveEvent) => void): void;
87
- off(event: 'down', handler?: (event: PointerDownEvent) => void): void;
88
- off(event: 'up', handler?: (event: PointerUpEvent) => void): void;
89
- off(event: 'wheel', handler?: (event: WheelEvent) => void): void;
90
- /**
91
- * Update the state of current pointer, meant to be called a the end of frame
92
- */
93
- update(): void;
94
- /**
95
- * Adds an Actor to actorsUnderPointer object.
96
- * @param actor An Actor to be added;
97
- */
98
- addActorUnderPointer(actor: Actor): void;
99
- /**
100
- * Removes an Actor from actorsUnderPointer object.
101
- * @param actor An Actor to be removed;
102
- */
103
- removeActorUnderPointer(actor: Actor): void;
104
- /**
105
- * Returns all actors under this pointer this frame
106
- */
107
- getActorsUnderPointer(): Actor[];
108
- /**
109
- * Returns all actors that are no longer under the pointer this frame
110
- */
111
- getActorsUnderPointerLastFrame(): Actor[];
112
- /**
113
- * Returns all actors relevant for events to pointer this frame
114
- */
115
- getActorsForEvents(): Actor[];
116
- /**
117
- * Checks if Pointer location has a specific Actor bounds contained underneath.
118
- * @param actor An Actor for check;
119
- */
120
- checkActorUnderPointer(actor: Actor): boolean;
121
- /**
122
- * Checks if an actor was under the pointer last frame
123
- * @param actor
124
- */
125
- wasActorUnderPointer(actor: Actor): boolean;
126
- /**
127
- * Checks if Pointer has a specific Actor in ActorsUnderPointer list.
128
- * @param actor An Actor for check;
129
- */
130
- isActorAliveUnderPointer(actor: Actor): boolean;
131
- private _onPointerMove;
132
- private _onPointerDown;
133
- private _onPointerUp;
134
- }
@@ -1,170 +0,0 @@
1
- import { Actor } from '../Actor';
2
- import { GlobalCoordinates } from '../Math/global-coordinates';
3
- import { Vector } from '../Math/vector';
4
- import { Pointer, PointerType } from './Pointer';
5
- import { GameEvent } from '../Events';
6
- /**
7
- * Native browser button enumeration
8
- */
9
- export declare enum NativePointerButton {
10
- NoButton = -1,
11
- Left = 0,
12
- Middle = 1,
13
- Right = 2,
14
- Unknown = 3
15
- }
16
- /**
17
- * The mouse button being pressed.
18
- */
19
- export declare enum PointerButton {
20
- Left = "Left",
21
- Middle = "Middle",
22
- Right = "Right",
23
- Unknown = "Unknown",
24
- NoButton = "NoButton"
25
- }
26
- export declare enum WheelDeltaMode {
27
- Pixel = "Pixel",
28
- Line = "Line",
29
- Page = "Page"
30
- }
31
- /**
32
- * Type that indicates Excalibur's valid synthetic pointer events
33
- */
34
- export declare type PointerEventName = 'pointerdragstart' | 'pointerdragend' | 'pointerdragmove' | 'pointerdragenter' | 'pointerdragleave' | 'pointermove' | 'pointerenter' | 'pointerleave' | 'pointerup' | 'pointerdown';
35
- /**
36
- * Pointer events
37
- *
38
- * Represents a mouse, touch, or stylus event. See [[Pointers]] for more information on
39
- * handling pointer input.
40
- *
41
- * For mouse-based events, you can inspect [[PointerEvent.button]] to see what button was pressed.
42
- */
43
- export declare class PointerEvent extends GameEvent<Actor> {
44
- protected coordinates: GlobalCoordinates;
45
- pointer: Pointer;
46
- index: number;
47
- pointerType: PointerType;
48
- button: PointerButton;
49
- ev: any;
50
- protected _name: string;
51
- get name(): string;
52
- /** The world coordinates of the event. */
53
- get worldPos(): Vector;
54
- /** The page coordinates of the event. */
55
- get pagePos(): Vector;
56
- /** The screen coordinates of the event. */
57
- get screenPos(): Vector;
58
- /**
59
- * @param coordinates The [[GlobalCoordinates]] of the event
60
- * @param pointer The [[Pointer]] of the event
61
- * @param index The index of the pointer (zero-based)
62
- * @param pointerType The type of pointer
63
- * @param button The button pressed (if [[PointerType.Mouse]])
64
- * @param ev The raw DOM event being handled
65
- */
66
- constructor(coordinates: GlobalCoordinates, pointer: Pointer, index: number, pointerType: PointerType, button: PointerButton, ev: any);
67
- get pos(): Vector;
68
- _canceled: boolean;
69
- /**
70
- * Cancels pointer event propogation, event will not be transmitted to any other actors
71
- */
72
- cancel(): void;
73
- /**
74
- *
75
- * @returns If the event is canceled it will no longer be transmitted to any other actors
76
- */
77
- isCanceled(): boolean;
78
- propagate(actor: Actor): void;
79
- /**
80
- * Action, that calls when event happens
81
- */
82
- doAction(actor: Actor): void;
83
- protected _onActionStart(_actor?: Actor): void;
84
- protected _onActionEnd(_actor?: Actor): void;
85
- }
86
- export declare class PointerEventFactory<T extends PointerEvent> {
87
- protected _pointerEventType: new (coordinates: GlobalCoordinates, pointer: Pointer, index: number, pointerType: PointerType, button: PointerButton, ev: any) => T;
88
- constructor(_pointerEventType: new (coordinates: GlobalCoordinates, pointer: Pointer, index: number, pointerType: PointerType, button: PointerButton, ev: any) => T);
89
- /**
90
- * Create specific PointerEvent
91
- */
92
- create(coordinates: GlobalCoordinates, pointer: Pointer, index: number, pointerType: PointerType, button: PointerButton, ev: any): T;
93
- }
94
- export declare class PointerDragEvent extends PointerEvent {
95
- }
96
- export declare class PointerUpEvent extends PointerEvent {
97
- protected _name: string;
98
- protected _onActionEnd(actor: Actor): void;
99
- }
100
- export declare class PointerDownEvent extends PointerEvent {
101
- protected _name: string;
102
- protected _onActionEnd(actor: Actor): void;
103
- }
104
- export declare class PointerMoveEvent extends PointerEvent {
105
- protected _name: string;
106
- propagate(actor: Actor): void;
107
- protected _onActionStart(actor: Actor): void;
108
- }
109
- export declare class PointerEnterEvent extends PointerEvent {
110
- protected _name: string;
111
- protected _onActionStart(actor: Actor): void;
112
- protected _onActionEnd(actor: Actor): void;
113
- }
114
- export declare class PointerLeaveEvent extends PointerEvent {
115
- protected _name: string;
116
- protected _onActionStart(actor: Actor): void;
117
- protected _onActionEnd(actor: Actor): void;
118
- }
119
- export declare class PointerCancelEvent extends PointerEvent {
120
- protected _name: string;
121
- }
122
- /**
123
- * Wheel Events
124
- *
125
- * Represents a mouse wheel event. See [[Pointers]] for more information on
126
- * handling point input.
127
- */
128
- export declare class WheelEvent extends GameEvent<Actor> {
129
- x: number;
130
- y: number;
131
- pageX: number;
132
- pageY: number;
133
- screenX: number;
134
- screenY: number;
135
- index: number;
136
- deltaX: number;
137
- deltaY: number;
138
- deltaZ: number;
139
- deltaMode: WheelDeltaMode;
140
- ev: any;
141
- /**
142
- * @param x The `x` coordinate of the event (in world coordinates)
143
- * @param y The `y` coordinate of the event (in world coordinates)
144
- * @param pageX The `x` coordinate of the event (in document coordinates)
145
- * @param pageY The `y` coordinate of the event (in document coordinates)
146
- * @param screenX The `x` coordinate of the event (in screen coordinates)
147
- * @param screenY The `y` coordinate of the event (in screen coordinates)
148
- * @param index The index of the pointer (zero-based)
149
- * @param deltaX The type of pointer
150
- * @param deltaY The type of pointer
151
- * @param deltaZ The type of pointer
152
- * @param deltaMode The type of movement [[WheelDeltaMode]]
153
- * @param ev The raw DOM event being handled
154
- */
155
- constructor(x: number, y: number, pageX: number, pageY: number, screenX: number, screenY: number, index: number, deltaX: number, deltaY: number, deltaZ: number, deltaMode: WheelDeltaMode, ev: any);
156
- private _isCanceled;
157
- /**
158
- * Cancels pointer event propogation, event will not be transmitted to any other actors
159
- */
160
- cancel(): void;
161
- /**
162
- *
163
- * @returns If the event is canceled it will no longer be transmitted to any other actors
164
- */
165
- isCanceled(): boolean;
166
- }
167
- /**
168
- *
169
- */
170
- export declare function createPointerEventByName(eventName: string, coordinates: GlobalCoordinates, pointer: Pointer, index: number, pointerType: PointerType, button: PointerButton, ev: any): PointerEvent;