excalibur 0.28.3 → 0.28.4

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 (482) hide show
  1. package/.gitattributes +63 -63
  2. package/CHANGELOG.md +2003 -1955
  3. package/LICENSE.md +25 -25
  4. package/README.md +134 -134
  5. package/STYLEGUIDE.md +136 -136
  6. package/build/dist/Actions/Action/ActionSequence.js +31 -0
  7. package/build/dist/Actions/Action/ActionSequence.js.map +1 -0
  8. package/build/dist/Actions/Action/Blink.js +54 -0
  9. package/build/dist/Actions/Action/Blink.js.map +1 -0
  10. package/build/dist/Actions/Action/CallMethod.js +21 -0
  11. package/build/dist/Actions/Action/CallMethod.js.map +1 -0
  12. package/build/dist/Actions/Action/Delay.js +26 -0
  13. package/build/dist/Actions/Action/Delay.js.map +1 -0
  14. package/build/dist/Actions/Action/Die.js +22 -0
  15. package/build/dist/Actions/Action/Die.js.map +1 -0
  16. package/build/dist/Actions/Action/EaseBy.js +70 -0
  17. package/build/dist/Actions/Action/EaseBy.js.map +1 -0
  18. package/build/dist/Actions/Action/EaseTo.js +69 -0
  19. package/build/dist/Actions/Action/EaseTo.js.map +1 -0
  20. package/build/dist/Actions/Action/Fade.js +48 -0
  21. package/build/dist/Actions/Action/Fade.js.map +1 -0
  22. package/build/dist/Actions/Action/Follow.js +56 -0
  23. package/build/dist/Actions/Action/Follow.js.map +1 -0
  24. package/build/dist/Actions/Action/Meet.js +54 -0
  25. package/build/dist/Actions/Action/Meet.js.map +1 -0
  26. package/build/dist/Actions/Action/MoveBy.js +48 -0
  27. package/build/dist/Actions/Action/MoveBy.js.map +1 -0
  28. package/build/dist/Actions/Action/MoveTo.js +41 -0
  29. package/build/dist/Actions/Action/MoveTo.js.map +1 -0
  30. package/build/dist/Actions/Action/ParallelActions.js +23 -0
  31. package/build/dist/Actions/Action/ParallelActions.js.map +1 -0
  32. package/build/dist/Actions/Action/Repeat.js +31 -0
  33. package/build/dist/Actions/Action/Repeat.js.map +1 -0
  34. package/build/dist/Actions/Action/RepeatForever.js +37 -0
  35. package/build/dist/Actions/Action/RepeatForever.js.map +1 -0
  36. package/build/dist/Actions/Action/RotateBy.js +95 -0
  37. package/build/dist/Actions/Action/RotateBy.js.map +1 -0
  38. package/build/dist/Actions/Action/RotateTo.js +91 -0
  39. package/build/dist/Actions/Action/RotateTo.js.map +1 -0
  40. package/build/dist/Actions/Action/ScaleBy.js +46 -0
  41. package/build/dist/Actions/Action/ScaleBy.js.map +1 -0
  42. package/build/dist/Actions/Action/ScaleTo.js +58 -0
  43. package/build/dist/Actions/Action/ScaleTo.js.map +1 -0
  44. package/build/dist/Actions/Action.js +2 -0
  45. package/build/dist/Actions/Action.js.map +1 -0
  46. package/build/dist/Actions/ActionContext.js +322 -0
  47. package/build/dist/Actions/ActionContext.js.map +1 -0
  48. package/build/dist/Actions/ActionQueue.js +87 -0
  49. package/build/dist/Actions/ActionQueue.js.map +1 -0
  50. package/build/dist/Actions/Actionable.js +2 -0
  51. package/build/dist/Actions/Actionable.js.map +1 -0
  52. package/build/dist/Actions/ActionsComponent.js +195 -0
  53. package/build/dist/Actions/ActionsComponent.js.map +1 -0
  54. package/build/dist/Actions/ActionsSystem.js +30 -0
  55. package/build/dist/Actions/ActionsSystem.js.map +1 -0
  56. package/build/dist/Actions/Index.js +26 -0
  57. package/build/dist/Actions/Index.js.map +1 -0
  58. package/build/dist/Actions/RotationType.js +27 -0
  59. package/build/dist/Actions/RotationType.js.map +1 -0
  60. package/build/dist/Actor.js +629 -0
  61. package/build/dist/Actor.js.map +1 -0
  62. package/build/dist/Camera.js +660 -0
  63. package/build/dist/Camera.js.map +1 -0
  64. package/build/dist/Collision/BoundingBox.js +415 -0
  65. package/build/dist/Collision/BoundingBox.js.map +1 -0
  66. package/build/dist/Collision/ColliderComponent.js +202 -0
  67. package/build/dist/Collision/ColliderComponent.js.map +1 -0
  68. package/build/dist/Collision/Colliders/CircleCollider.js +226 -0
  69. package/build/dist/Collision/Colliders/CircleCollider.js.map +1 -0
  70. package/build/dist/Collision/Colliders/ClosestLineJumpTable.js +211 -0
  71. package/build/dist/Collision/Colliders/ClosestLineJumpTable.js.map +1 -0
  72. package/build/dist/Collision/Colliders/Collider.js +32 -0
  73. package/build/dist/Collision/Colliders/Collider.js.map +1 -0
  74. package/build/dist/Collision/Colliders/CollisionJumpTable.js +300 -0
  75. package/build/dist/Collision/Colliders/CollisionJumpTable.js.map +1 -0
  76. package/build/dist/Collision/Colliders/EdgeCollider.js +229 -0
  77. package/build/dist/Collision/Colliders/EdgeCollider.js.map +1 -0
  78. package/build/dist/Collision/Colliders/PolygonCollider.js +556 -0
  79. package/build/dist/Collision/Colliders/PolygonCollider.js.map +1 -0
  80. package/build/dist/Collision/Colliders/SeparatingAxis.js +67 -0
  81. package/build/dist/Collision/Colliders/SeparatingAxis.js.map +1 -0
  82. package/build/dist/Collision/Colliders/Shape.js +99 -0
  83. package/build/dist/Collision/Colliders/Shape.js.map +1 -0
  84. package/build/dist/Collision/CollisionType.js +33 -0
  85. package/build/dist/Collision/CollisionType.js.map +1 -0
  86. package/build/dist/Collision/Detection/CollisionContact.js +51 -0
  87. package/build/dist/Collision/Detection/CollisionContact.js.map +1 -0
  88. package/build/dist/Collision/Detection/CollisionProcessor.js +2 -0
  89. package/build/dist/Collision/Detection/CollisionProcessor.js.map +1 -0
  90. package/build/dist/Collision/Detection/DynamicTree.js +442 -0
  91. package/build/dist/Collision/Detection/DynamicTree.js.map +1 -0
  92. package/build/dist/Collision/Detection/Pair.js +92 -0
  93. package/build/dist/Collision/Detection/Pair.js.map +1 -0
  94. package/build/dist/Collision/Detection/QuadTree.js +193 -0
  95. package/build/dist/Collision/Detection/QuadTree.js.map +1 -0
  96. package/build/dist/Collision/Group/CollisionGroup.js +3 -3
  97. package/build/dist/Collision/Integrator.js +25 -0
  98. package/build/dist/Collision/Integrator.js.map +1 -0
  99. package/build/dist/Collision/MotionSystem.js +35 -0
  100. package/build/dist/Collision/MotionSystem.js.map +1 -0
  101. package/build/dist/Collision/Physics.js +163 -0
  102. package/build/dist/Collision/Physics.js.map +1 -0
  103. package/build/dist/Collision/PhysicsWorld.js +10 -0
  104. package/build/dist/Collision/PhysicsWorld.js.map +1 -0
  105. package/build/dist/Collision/Side.js +51 -0
  106. package/build/dist/Collision/Side.js.map +1 -0
  107. package/build/dist/Collision/Solver/ArcadeSolver.js +154 -0
  108. package/build/dist/Collision/Solver/ArcadeSolver.js.map +1 -0
  109. package/build/dist/Collision/Solver/ContactConstraintPoint.js +87 -0
  110. package/build/dist/Collision/Solver/ContactConstraintPoint.js.map +1 -0
  111. package/build/dist/Collision/Solver/RealisticSolver.js +293 -0
  112. package/build/dist/Collision/Solver/RealisticSolver.js.map +1 -0
  113. package/build/dist/Collision/Solver/Solver.js +2 -0
  114. package/build/dist/Collision/Solver/Solver.js.map +1 -0
  115. package/build/dist/Color.js +417 -0
  116. package/build/dist/Color.js.map +1 -0
  117. package/build/dist/Configurable.js +32 -0
  118. package/build/dist/Configurable.js.map +1 -0
  119. package/build/dist/Debug/Debug.d.ts +11 -0
  120. package/build/dist/Debug/Debug.js +385 -0
  121. package/build/dist/Debug/Debug.js.map +1 -0
  122. package/build/dist/Debug/DebugFlags.js +40 -0
  123. package/build/dist/Debug/DebugFlags.js.map +1 -0
  124. package/build/dist/Debug/DebugSystem.js +263 -0
  125. package/build/dist/Debug/DebugSystem.js.map +1 -0
  126. package/build/dist/Debug/index.js +4 -0
  127. package/build/dist/Debug/index.js.map +1 -0
  128. package/build/dist/Deprecated.js +2 -0
  129. package/build/dist/Deprecated.js.map +1 -0
  130. package/build/dist/Engine.js +986 -0
  131. package/build/dist/Engine.js.map +1 -0
  132. package/build/dist/EntityComponentSystem/Component.js +65 -0
  133. package/build/dist/EntityComponentSystem/Component.js.map +1 -0
  134. package/build/dist/EntityComponentSystem/Components/MotionComponent.js +33 -0
  135. package/build/dist/EntityComponentSystem/Components/MotionComponent.js.map +1 -0
  136. package/build/dist/EntityComponentSystem/Components/TransformComponent.js +107 -0
  137. package/build/dist/EntityComponentSystem/Components/TransformComponent.js.map +1 -0
  138. package/build/dist/EntityComponentSystem/Entity.js +487 -0
  139. package/build/dist/EntityComponentSystem/Entity.js.map +1 -0
  140. package/build/dist/EntityComponentSystem/EntityManager.js +137 -0
  141. package/build/dist/EntityComponentSystem/EntityManager.js.map +1 -0
  142. package/build/dist/EntityComponentSystem/Query.js +90 -0
  143. package/build/dist/EntityComponentSystem/Query.js.map +1 -0
  144. package/build/dist/EntityComponentSystem/QueryManager.js +90 -0
  145. package/build/dist/EntityComponentSystem/QueryManager.js.map +1 -0
  146. package/build/dist/EntityComponentSystem/System.js +76 -0
  147. package/build/dist/EntityComponentSystem/System.js.map +1 -0
  148. package/build/dist/EntityComponentSystem/SystemManager.js +104 -0
  149. package/build/dist/EntityComponentSystem/SystemManager.js.map +1 -0
  150. package/build/dist/EntityComponentSystem/Util.js +5 -0
  151. package/build/dist/EntityComponentSystem/Util.js.map +1 -0
  152. package/build/dist/EntityComponentSystem/World.js +55 -0
  153. package/build/dist/EntityComponentSystem/World.js.map +1 -0
  154. package/build/dist/EntityComponentSystem/index.js +11 -0
  155. package/build/dist/EntityComponentSystem/index.js.map +1 -0
  156. package/build/dist/EventDispatcher.js +122 -0
  157. package/build/dist/EventDispatcher.js.map +1 -0
  158. package/build/dist/EventEmitter.js +86 -0
  159. package/build/dist/EventEmitter.js.map +1 -0
  160. package/build/dist/Events/ExEvent.js +12 -0
  161. package/build/dist/Events/ExEvent.js.map +1 -0
  162. package/build/dist/Events/MediaEvents.js +75 -0
  163. package/build/dist/Events/MediaEvents.js.map +1 -0
  164. package/build/dist/Events/PointerEvents.js +52 -0
  165. package/build/dist/Events/PointerEvents.js.map +1 -0
  166. package/build/dist/Events.js +473 -0
  167. package/build/dist/Events.js.map +1 -0
  168. package/build/dist/Flags.js +67 -0
  169. package/build/dist/Flags.js.map +1 -0
  170. package/build/dist/Graphics/Animation.js +344 -0
  171. package/build/dist/Graphics/Animation.js.map +1 -0
  172. package/build/dist/Graphics/Canvas.js +38 -0
  173. package/build/dist/Graphics/Canvas.js.map +1 -0
  174. package/build/dist/Graphics/Circle.js +48 -0
  175. package/build/dist/Graphics/Circle.js.map +1 -0
  176. package/build/dist/Graphics/Context/ExcaliburGraphicsContext.js +2 -0
  177. package/build/dist/Graphics/Context/ExcaliburGraphicsContext.js.map +1 -0
  178. package/build/dist/Graphics/Context/ExcaliburGraphicsContext2DCanvas.js +237 -0
  179. package/build/dist/Graphics/Context/ExcaliburGraphicsContext2DCanvas.js.map +1 -0
  180. package/build/dist/Graphics/Context/ExcaliburGraphicsContextWebGL.d.ts +1 -0
  181. package/build/dist/Graphics/Context/ExcaliburGraphicsContextWebGL.js +481 -0
  182. package/build/dist/Graphics/Context/ExcaliburGraphicsContextWebGL.js.map +1 -0
  183. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.frag.glsl +52 -52
  184. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.js +174 -0
  185. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.js.map +1 -0
  186. package/build/dist/Graphics/Context/circle-renderer/circle-renderer.vert.glsl +37 -37
  187. package/build/dist/Graphics/Context/debug-text.js +47 -0
  188. package/build/dist/Graphics/Context/debug-text.js.map +1 -0
  189. package/build/dist/Graphics/Context/draw-call.js +16 -0
  190. package/build/dist/Graphics/Context/draw-call.js.map +1 -0
  191. package/build/dist/Graphics/Context/image-renderer/image-renderer.frag.glsl +32 -32
  192. package/build/dist/Graphics/Context/image-renderer/image-renderer.js +246 -0
  193. package/build/dist/Graphics/Context/image-renderer/image-renderer.js.map +1 -0
  194. package/build/dist/Graphics/Context/image-renderer/image-renderer.vert.glsl +32 -32
  195. package/build/dist/Graphics/Context/line-renderer/line-fragment.glsl +10 -10
  196. package/build/dist/Graphics/Context/line-renderer/line-renderer.js +90 -0
  197. package/build/dist/Graphics/Context/line-renderer/line-renderer.js.map +1 -0
  198. package/build/dist/Graphics/Context/line-renderer/line-vertex.glsl +14 -14
  199. package/build/dist/Graphics/Context/material-renderer/material-renderer.js +23 -2
  200. package/build/dist/Graphics/Context/material-renderer/material-renderer.js.map +1 -1
  201. package/build/dist/Graphics/Context/material.d.ts +2 -0
  202. package/build/dist/Graphics/Context/material.js +72 -0
  203. package/build/dist/Graphics/Context/material.js.map +1 -0
  204. package/build/dist/Graphics/Context/point-renderer/point-fragment.glsl +19 -19
  205. package/build/dist/Graphics/Context/point-renderer/point-renderer.js +91 -0
  206. package/build/dist/Graphics/Context/point-renderer/point-renderer.js.map +1 -0
  207. package/build/dist/Graphics/Context/point-renderer/point-vertex.glsl +11 -11
  208. package/build/dist/Graphics/Context/quad-index-buffer.js +67 -0
  209. package/build/dist/Graphics/Context/quad-index-buffer.js.map +1 -0
  210. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.frag.glsl +85 -85
  211. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.js +305 -0
  212. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.js.map +1 -0
  213. package/build/dist/Graphics/Context/rectangle-renderer/rectangle-renderer.vert.glsl +42 -42
  214. package/build/dist/Graphics/Context/render-source.js +16 -0
  215. package/build/dist/Graphics/Context/render-source.js.map +1 -0
  216. package/build/dist/Graphics/Context/render-target.js +65 -0
  217. package/build/dist/Graphics/Context/render-target.js.map +1 -0
  218. package/build/dist/Graphics/Context/renderer.js +2 -0
  219. package/build/dist/Graphics/Context/renderer.js.map +1 -0
  220. package/build/dist/Graphics/Context/screen-pass-painter/screen-fragment.glsl +13 -13
  221. package/build/dist/Graphics/Context/screen-pass-painter/screen-pass-painter.js +56 -0
  222. package/build/dist/Graphics/Context/screen-pass-painter/screen-pass-painter.js.map +1 -0
  223. package/build/dist/Graphics/Context/screen-pass-painter/screen-vertex.glsl +11 -11
  224. package/build/dist/Graphics/Context/state-stack.js +37 -0
  225. package/build/dist/Graphics/Context/state-stack.js.map +1 -0
  226. package/build/dist/Graphics/Context/texture-loader.js +109 -0
  227. package/build/dist/Graphics/Context/texture-loader.js.map +1 -0
  228. package/build/dist/Graphics/Context/transform-stack.js +30 -0
  229. package/build/dist/Graphics/Context/transform-stack.js.map +1 -0
  230. package/build/dist/Graphics/Context/vertex-buffer.js +53 -0
  231. package/build/dist/Graphics/Context/vertex-buffer.js.map +1 -0
  232. package/build/dist/Graphics/Context/webgl-util.js +79 -0
  233. package/build/dist/Graphics/Context/webgl-util.js.map +1 -0
  234. package/build/dist/Graphics/DebugGraphicsComponent.d.ts +3 -2
  235. package/build/dist/Graphics/DebugGraphicsComponent.js +16 -0
  236. package/build/dist/Graphics/DebugGraphicsComponent.js.map +1 -0
  237. package/build/dist/Graphics/Filtering.js +17 -0
  238. package/build/dist/Graphics/Filtering.js.map +1 -0
  239. package/build/dist/Graphics/Font.js +148 -0
  240. package/build/dist/Graphics/Font.js.map +1 -0
  241. package/build/dist/Graphics/FontCache.d.ts +1 -0
  242. package/build/dist/Graphics/FontCache.js +80 -0
  243. package/build/dist/Graphics/FontCache.js.map +1 -0
  244. package/build/dist/Graphics/FontCommon.js +109 -0
  245. package/build/dist/Graphics/FontCommon.js.map +1 -0
  246. package/build/dist/Graphics/FontTextInstance.js +230 -0
  247. package/build/dist/Graphics/FontTextInstance.js.map +1 -0
  248. package/build/dist/Graphics/Graphic.js +208 -0
  249. package/build/dist/Graphics/Graphic.js.map +1 -0
  250. package/build/dist/Graphics/GraphicsComponent.js +336 -0
  251. package/build/dist/Graphics/GraphicsComponent.js.map +1 -0
  252. package/build/dist/Graphics/GraphicsDiagnostics.js +9 -0
  253. package/build/dist/Graphics/GraphicsDiagnostics.js.map +1 -0
  254. package/build/dist/Graphics/GraphicsGroup.js +69 -0
  255. package/build/dist/Graphics/GraphicsGroup.js.map +1 -0
  256. package/build/dist/Graphics/GraphicsSystem.js +210 -0
  257. package/build/dist/Graphics/GraphicsSystem.js.map +1 -0
  258. package/build/dist/Graphics/ImageSource.js +124 -0
  259. package/build/dist/Graphics/ImageSource.js.map +1 -0
  260. package/build/dist/Graphics/Line.js +45 -0
  261. package/build/dist/Graphics/Line.js.map +1 -0
  262. package/build/dist/Graphics/OffscreenSystem.js +64 -0
  263. package/build/dist/Graphics/OffscreenSystem.js.map +1 -0
  264. package/build/dist/Graphics/ParallaxComponent.js +11 -0
  265. package/build/dist/Graphics/ParallaxComponent.js.map +1 -0
  266. package/build/dist/Graphics/Polygon.js +59 -0
  267. package/build/dist/Graphics/Polygon.js.map +1 -0
  268. package/build/dist/Graphics/PostProcessor/ColorBlindnessMode.js +7 -0
  269. package/build/dist/Graphics/PostProcessor/ColorBlindnessMode.js.map +1 -0
  270. package/build/dist/Graphics/PostProcessor/ColorBlindnessPostProcessor.js +52 -0
  271. package/build/dist/Graphics/PostProcessor/ColorBlindnessPostProcessor.js.map +1 -0
  272. package/build/dist/Graphics/PostProcessor/PostProcessor.js +2 -0
  273. package/build/dist/Graphics/PostProcessor/PostProcessor.js.map +1 -0
  274. package/build/dist/Graphics/PostProcessor/ScreenShader.js +59 -0
  275. package/build/dist/Graphics/PostProcessor/ScreenShader.js.map +1 -0
  276. package/build/dist/Graphics/PostProcessor/color-blind-fragment.glsl +64 -64
  277. package/build/dist/Graphics/Raster.js +215 -0
  278. package/build/dist/Graphics/Raster.js.map +1 -0
  279. package/build/dist/Graphics/Rectangle.js +29 -0
  280. package/build/dist/Graphics/Rectangle.js.map +1 -0
  281. package/build/dist/Graphics/Sprite.js +82 -0
  282. package/build/dist/Graphics/Sprite.js.map +1 -0
  283. package/build/dist/Graphics/SpriteFont.js +139 -0
  284. package/build/dist/Graphics/SpriteFont.js.map +1 -0
  285. package/build/dist/Graphics/SpriteSheet.js +116 -0
  286. package/build/dist/Graphics/SpriteSheet.js.map +1 -0
  287. package/build/dist/Graphics/Text.js +103 -0
  288. package/build/dist/Graphics/Text.js.map +1 -0
  289. package/build/dist/Graphics/index.js +46 -0
  290. package/build/dist/Graphics/index.js.map +1 -0
  291. package/build/dist/Id.js +8 -0
  292. package/build/dist/Id.js.map +1 -0
  293. package/build/dist/Input/CapturePointerConfig.js +5 -0
  294. package/build/dist/Input/CapturePointerConfig.js.map +1 -0
  295. package/build/dist/Input/EngineInput.js +2 -0
  296. package/build/dist/Input/EngineInput.js.map +1 -0
  297. package/build/dist/Input/Gamepad.js +422 -0
  298. package/build/dist/Input/Gamepad.js.map +1 -0
  299. package/build/dist/Input/Index.js +88 -0
  300. package/build/dist/Input/Index.js.map +1 -0
  301. package/build/dist/Input/InputMapper.js +45 -0
  302. package/build/dist/Input/InputMapper.js.map +1 -0
  303. package/build/dist/Input/Keyboard.js +348 -0
  304. package/build/dist/Input/Keyboard.js.map +1 -0
  305. package/build/dist/Input/NativePointerButton.js +12 -0
  306. package/build/dist/Input/NativePointerButton.js.map +1 -0
  307. package/build/dist/Input/PointerAbstraction.js +44 -0
  308. package/build/dist/Input/PointerAbstraction.js.map +1 -0
  309. package/build/dist/Input/PointerButton.js +12 -0
  310. package/build/dist/Input/PointerButton.js.map +1 -0
  311. package/build/dist/Input/PointerComponent.js +28 -0
  312. package/build/dist/Input/PointerComponent.js.map +1 -0
  313. package/build/dist/Input/PointerEvent.js +25 -0
  314. package/build/dist/Input/PointerEvent.js.map +1 -0
  315. package/build/dist/Input/PointerEventReceiver.js +456 -0
  316. package/build/dist/Input/PointerEventReceiver.js.map +1 -0
  317. package/build/dist/Input/PointerScope.js +16 -0
  318. package/build/dist/Input/PointerScope.js.map +1 -0
  319. package/build/dist/Input/PointerSystem.js +249 -0
  320. package/build/dist/Input/PointerSystem.js.map +1 -0
  321. package/build/dist/Input/PointerType.js +11 -0
  322. package/build/dist/Input/PointerType.js.map +1 -0
  323. package/build/dist/Input/WheelDeltaMode.js +7 -0
  324. package/build/dist/Input/WheelDeltaMode.js.map +1 -0
  325. package/build/dist/Input/WheelEvent.js +21 -0
  326. package/build/dist/Input/WheelEvent.js.map +1 -0
  327. package/build/dist/Interfaces/Audio.js +2 -0
  328. package/build/dist/Interfaces/Audio.js.map +1 -0
  329. package/build/dist/Interfaces/AudioImplementation.js +11 -0
  330. package/build/dist/Interfaces/AudioImplementation.js.map +1 -0
  331. package/build/dist/Interfaces/Clonable.js +2 -0
  332. package/build/dist/Interfaces/Clonable.js.map +1 -0
  333. package/build/dist/Interfaces/Evented.js +2 -0
  334. package/build/dist/Interfaces/Evented.js.map +1 -0
  335. package/build/dist/Interfaces/Index.js +8 -0
  336. package/build/dist/Interfaces/Index.js.map +1 -0
  337. package/build/dist/Interfaces/LifecycleEvents.js +51 -0
  338. package/build/dist/Interfaces/LifecycleEvents.js.map +1 -0
  339. package/build/dist/Interfaces/Loadable.js +2 -0
  340. package/build/dist/Interfaces/Loadable.js.map +1 -0
  341. package/build/dist/Interfaces/PointerEventHandlers.js +2 -0
  342. package/build/dist/Interfaces/PointerEventHandlers.js.map +1 -0
  343. package/build/dist/Label.js +81 -0
  344. package/build/dist/Label.js.map +1 -0
  345. package/build/dist/Loader.js +416 -0
  346. package/build/dist/Loader.js.map +1 -0
  347. package/build/dist/Math/Index.js +13 -0
  348. package/build/dist/Math/Index.js.map +1 -0
  349. package/build/dist/Math/Random.js +239 -0
  350. package/build/dist/Math/Random.js.map +1 -0
  351. package/build/dist/Math/affine-matrix.js +331 -0
  352. package/build/dist/Math/affine-matrix.js.map +1 -0
  353. package/build/dist/Math/coord-plane.js +17 -0
  354. package/build/dist/Math/coord-plane.js.map +1 -0
  355. package/build/dist/Math/global-coordinates.js +30 -0
  356. package/build/dist/Math/global-coordinates.js.map +1 -0
  357. package/build/dist/Math/line-segment.js +205 -0
  358. package/build/dist/Math/line-segment.js.map +1 -0
  359. package/build/dist/Math/matrix.js +457 -0
  360. package/build/dist/Math/matrix.js.map +1 -0
  361. package/build/dist/Math/projection.js +24 -0
  362. package/build/dist/Math/projection.js.map +1 -0
  363. package/build/dist/Math/ray.js +52 -0
  364. package/build/dist/Math/ray.js.map +1 -0
  365. package/build/dist/Math/transform.js +219 -0
  366. package/build/dist/Math/transform.js.map +1 -0
  367. package/build/dist/Math/util.js +82 -0
  368. package/build/dist/Math/util.js.map +1 -0
  369. package/build/dist/Math/vector-view.js +25 -0
  370. package/build/dist/Math/vector-view.js.map +1 -0
  371. package/build/dist/Math/vector.js +340 -0
  372. package/build/dist/Math/vector.js.map +1 -0
  373. package/build/dist/Math/watch-vector.js +26 -0
  374. package/build/dist/Math/watch-vector.js.map +1 -0
  375. package/build/dist/Particles.js +430 -0
  376. package/build/dist/Particles.js.map +1 -0
  377. package/build/dist/Polyfill.js +56 -0
  378. package/build/dist/Polyfill.js.map +1 -0
  379. package/build/dist/Resources/Gif.js +464 -0
  380. package/build/dist/Resources/Gif.js.map +1 -0
  381. package/build/dist/Resources/Index.js +4 -0
  382. package/build/dist/Resources/Index.js.map +1 -0
  383. package/build/dist/Resources/Resource.js +81 -0
  384. package/build/dist/Resources/Resource.js.map +1 -0
  385. package/build/dist/Resources/Sound/AudioContext.js +16 -0
  386. package/build/dist/Resources/Sound/AudioContext.js.map +1 -0
  387. package/build/dist/Resources/Sound/Index.js +4 -0
  388. package/build/dist/Resources/Sound/Index.js.map +1 -0
  389. package/build/dist/Resources/Sound/Sound.js +326 -0
  390. package/build/dist/Resources/Sound/Sound.js.map +1 -0
  391. package/build/dist/Resources/Sound/WebAudioInstance.js +190 -0
  392. package/build/dist/Resources/Sound/WebAudioInstance.js.map +1 -0
  393. package/build/dist/Scene.js +444 -0
  394. package/build/dist/Scene.js.map +1 -0
  395. package/build/dist/Screen.js +782 -0
  396. package/build/dist/Screen.js.map +1 -0
  397. package/build/dist/ScreenElement.js +43 -0
  398. package/build/dist/ScreenElement.js.map +1 -0
  399. package/build/dist/TileMap/IsometricEntityComponent.js +17 -0
  400. package/build/dist/TileMap/IsometricEntityComponent.js.map +1 -0
  401. package/build/dist/TileMap/IsometricEntitySystem.js +23 -0
  402. package/build/dist/TileMap/IsometricEntitySystem.js.map +1 -0
  403. package/build/dist/TileMap/IsometricMap.js +311 -0
  404. package/build/dist/TileMap/IsometricMap.js.map +1 -0
  405. package/build/dist/TileMap/TileMap.d.ts +2 -1
  406. package/build/dist/TileMap/TileMap.js +630 -0
  407. package/build/dist/TileMap/TileMap.js.map +1 -0
  408. package/build/dist/TileMap/index.js +5 -0
  409. package/build/dist/TileMap/index.js.map +1 -0
  410. package/build/dist/Timer.js +202 -0
  411. package/build/dist/Timer.js.map +1 -0
  412. package/build/dist/Trigger.js +94 -0
  413. package/build/dist/Trigger.js.map +1 -0
  414. package/build/dist/Util/Browser.js +66 -0
  415. package/build/dist/Util/Browser.js.map +1 -0
  416. package/build/dist/Util/Clock.js +219 -0
  417. package/build/dist/Util/Clock.js.map +1 -0
  418. package/build/dist/Util/Decorators.js +78 -0
  419. package/build/dist/Util/Decorators.js.map +1 -0
  420. package/build/dist/Util/Detector.js +167 -0
  421. package/build/dist/Util/Detector.js.map +1 -0
  422. package/build/dist/Util/DrawUtil.js +115 -0
  423. package/build/dist/Util/DrawUtil.js.map +1 -0
  424. package/build/dist/Util/EasingFunctions.js +102 -0
  425. package/build/dist/Util/EasingFunctions.js.map +1 -0
  426. package/build/dist/Util/Fps.js +47 -0
  427. package/build/dist/Util/Fps.js.map +1 -0
  428. package/build/dist/Util/Future.js +30 -0
  429. package/build/dist/Util/Future.js.map +1 -0
  430. package/build/dist/Util/IFrame.js +23 -0
  431. package/build/dist/Util/IFrame.js.map +1 -0
  432. package/build/dist/Util/Index.js +7 -0
  433. package/build/dist/Util/Index.js.map +1 -0
  434. package/build/dist/Util/Log.js +195 -0
  435. package/build/dist/Util/Log.js.map +1 -0
  436. package/build/dist/Util/Observable.js +66 -0
  437. package/build/dist/Util/Observable.js.map +1 -0
  438. package/build/dist/Util/Pool.js +74 -0
  439. package/build/dist/Util/Pool.js.map +1 -0
  440. package/build/dist/Util/Semaphore.js +55 -0
  441. package/build/dist/Util/Semaphore.js.map +1 -0
  442. package/build/dist/Util/Sound.js +22 -0
  443. package/build/dist/Util/Sound.js.map +1 -0
  444. package/build/dist/Util/StateMachine.js +79 -0
  445. package/build/dist/Util/StateMachine.js.map +1 -0
  446. package/build/dist/Util/Toaster.css +28 -28
  447. package/build/dist/Util/Toaster.js +84 -0
  448. package/build/dist/Util/Toaster.js.map +1 -0
  449. package/build/dist/Util/Util.d.ts +6 -0
  450. package/build/dist/Util/Util.js +95 -0
  451. package/build/dist/Util/Util.js.map +1 -0
  452. package/build/dist/Util/Watch.js +67 -0
  453. package/build/dist/Util/Watch.js.map +1 -0
  454. package/build/dist/Util/WebAudio.js +62 -0
  455. package/build/dist/Util/WebAudio.js.map +1 -0
  456. package/build/dist/excalibur.d.ts +2 -2
  457. package/build/dist/excalibur.js +389 -258
  458. package/build/dist/excalibur.js.map +1 -1
  459. package/build/dist/excalibur.min.js +1 -1
  460. package/build/dist/excalibur.min.js.LICENSE.txt +1 -1
  461. package/build/dist/excalibur.min.js.map +1 -1
  462. package/build/dist/index.js +81 -0
  463. package/build/dist/index.js.map +1 -0
  464. package/build/esm/Debug/Debug.d.ts +11 -0
  465. package/build/esm/Graphics/Context/ExcaliburGraphicsContextWebGL.d.ts +1 -0
  466. package/build/esm/Graphics/Context/material.d.ts +2 -0
  467. package/build/esm/Graphics/DebugGraphicsComponent.d.ts +3 -2
  468. package/build/esm/Graphics/FontCache.d.ts +1 -0
  469. package/build/esm/TileMap/TileMap.d.ts +2 -1
  470. package/build/esm/Util/Util.d.ts +6 -0
  471. package/build/esm/excalibur.d.ts +2 -2
  472. package/build/esm/excalibur.js +389 -258
  473. package/build/esm/excalibur.js.map +1 -1
  474. package/build/esm/excalibur.min.js +1 -1
  475. package/build/esm/excalibur.min.js.LICENSE.txt +1 -1
  476. package/build/esm/excalibur.min.js.map +1 -1
  477. package/docker-compose.yml +11 -11
  478. package/package.json +131 -131
  479. package/build/dist/Loader.css +0 -122
  480. package/build/nuget/Excalibur.0.28.3.nupkg +0 -0
  481. package/build/v0.28.3.zip +0 -0
  482. package/excalibur-0.28.3.tgz +0 -0
@@ -0,0 +1,322 @@
1
+ import { EasingFunctions } from '../Util/EasingFunctions';
2
+ import { ActionQueue } from './ActionQueue';
3
+ import { Repeat } from './Action/Repeat';
4
+ import { RepeatForever } from './Action/RepeatForever';
5
+ import { MoveBy } from './Action/MoveBy';
6
+ import { MoveTo } from './Action/MoveTo';
7
+ import { RotateTo } from './Action/RotateTo';
8
+ import { RotateBy } from './Action/RotateBy';
9
+ import { ScaleTo } from './Action/ScaleTo';
10
+ import { ScaleBy } from './Action/ScaleBy';
11
+ import { CallMethod } from './Action/CallMethod';
12
+ import { EaseTo } from './Action/EaseTo';
13
+ import { EaseBy } from './Action/EaseBy';
14
+ import { Blink } from './Action/Blink';
15
+ import { Fade } from './Action/Fade';
16
+ import { Delay } from './Action/Delay';
17
+ import { Die } from './Action/Die';
18
+ import { Follow } from './Action/Follow';
19
+ import { Meet } from './Action/Meet';
20
+ import { Vector } from '../Math/vector';
21
+ /**
22
+ * The fluent Action API allows you to perform "actions" on
23
+ * [[Actor|Actors]] such as following, moving, rotating, and
24
+ * more. You can implement your own actions by implementing
25
+ * the [[Action]] interface.
26
+ */
27
+ export class ActionContext {
28
+ constructor(entity) {
29
+ this._entity = entity;
30
+ this._queue = new ActionQueue(entity);
31
+ }
32
+ getQueue() {
33
+ return this._queue;
34
+ }
35
+ update(elapsedMs) {
36
+ this._queue.update(elapsedMs);
37
+ }
38
+ /**
39
+ * Clears all queued actions from the Actor
40
+ */
41
+ clearActions() {
42
+ this._queue.clearActions();
43
+ }
44
+ runAction(action) {
45
+ action.reset();
46
+ this._queue.add(action);
47
+ return this;
48
+ }
49
+ easeTo(...args) {
50
+ var _a, _b;
51
+ let x = 0;
52
+ let y = 0;
53
+ let duration = 0;
54
+ let easingFcn = EasingFunctions.Linear;
55
+ if (args[0] instanceof Vector) {
56
+ x = args[0].x;
57
+ y = args[0].y;
58
+ duration = args[1];
59
+ easingFcn = (_a = args[2]) !== null && _a !== void 0 ? _a : easingFcn;
60
+ }
61
+ else {
62
+ x = args[0];
63
+ y = args[1];
64
+ duration = args[2];
65
+ easingFcn = (_b = args[3]) !== null && _b !== void 0 ? _b : easingFcn;
66
+ }
67
+ this._queue.add(new EaseTo(this._entity, x, y, duration, easingFcn));
68
+ return this;
69
+ }
70
+ easeBy(...args) {
71
+ var _a, _b;
72
+ let offsetX = 0;
73
+ let offsetY = 0;
74
+ let duration = 0;
75
+ let easingFcn = EasingFunctions.Linear;
76
+ if (args[0] instanceof Vector) {
77
+ offsetX = args[0].x;
78
+ offsetY = args[0].y;
79
+ duration = args[1];
80
+ easingFcn = (_a = args[2]) !== null && _a !== void 0 ? _a : easingFcn;
81
+ }
82
+ else {
83
+ offsetX = args[0];
84
+ offsetY = args[1];
85
+ duration = args[2];
86
+ easingFcn = (_b = args[3]) !== null && _b !== void 0 ? _b : easingFcn;
87
+ }
88
+ this._queue.add(new EaseBy(this._entity, offsetX, offsetY, duration, easingFcn));
89
+ return this;
90
+ }
91
+ moveTo(xOrPos, yOrSpeed, speedOrUndefined) {
92
+ let x = 0;
93
+ let y = 0;
94
+ let speed = 0;
95
+ if (xOrPos instanceof Vector) {
96
+ x = xOrPos.x;
97
+ y = xOrPos.y;
98
+ speed = yOrSpeed;
99
+ }
100
+ else {
101
+ x = xOrPos;
102
+ y = yOrSpeed;
103
+ speed = speedOrUndefined;
104
+ }
105
+ this._queue.add(new MoveTo(this._entity, x, y, speed));
106
+ return this;
107
+ }
108
+ moveBy(xOffsetOrVector, yOffsetOrSpeed, speedOrUndefined) {
109
+ let xOffset = 0;
110
+ let yOffset = 0;
111
+ let speed = 0;
112
+ if (xOffsetOrVector instanceof Vector) {
113
+ xOffset = xOffsetOrVector.x;
114
+ yOffset = xOffsetOrVector.y;
115
+ speed = yOffsetOrSpeed;
116
+ }
117
+ else {
118
+ xOffset = xOffsetOrVector;
119
+ yOffset = yOffsetOrSpeed;
120
+ speed = speedOrUndefined;
121
+ }
122
+ this._queue.add(new MoveBy(this._entity, xOffset, yOffset, speed));
123
+ return this;
124
+ }
125
+ /**
126
+ * This method will rotate an actor to the specified angle at the speed
127
+ * specified (in radians per second) and return back the actor. This
128
+ * method is part of the actor 'Action' fluent API allowing action chaining.
129
+ * @param angleRadians The angle to rotate to in radians
130
+ * @param speed The angular velocity of the rotation specified in radians per second
131
+ * @param rotationType The [[RotationType]] to use for this rotation
132
+ */
133
+ rotateTo(angleRadians, speed, rotationType) {
134
+ this._queue.add(new RotateTo(this._entity, angleRadians, speed, rotationType));
135
+ return this;
136
+ }
137
+ /**
138
+ * This method will rotate an actor by the specified angle offset, from it's current rotation given a certain speed
139
+ * in radians/sec and return back the actor. This method is part
140
+ * of the actor 'Action' fluent API allowing action chaining.
141
+ * @param angleRadiansOffset The angle to rotate to in radians relative to the current rotation
142
+ * @param speed The speed in radians/sec the actor should rotate at
143
+ * @param rotationType The [[RotationType]] to use for this rotation, default is shortest path
144
+ */
145
+ rotateBy(angleRadiansOffset, speed, rotationType) {
146
+ this._queue.add(new RotateBy(this._entity, angleRadiansOffset, speed, rotationType));
147
+ return this;
148
+ }
149
+ scaleTo(sizeXOrVector, sizeYOrSpeed, speedXOrUndefined, speedYOrUndefined) {
150
+ let sizeX = 1;
151
+ let sizeY = 1;
152
+ let speedX = 0;
153
+ let speedY = 0;
154
+ if (sizeXOrVector instanceof Vector && sizeYOrSpeed instanceof Vector) {
155
+ sizeX = sizeXOrVector.x;
156
+ sizeY = sizeXOrVector.y;
157
+ speedX = sizeYOrSpeed.x;
158
+ speedY = sizeYOrSpeed.y;
159
+ }
160
+ if (typeof sizeXOrVector === 'number' && typeof sizeYOrSpeed === 'number') {
161
+ sizeX = sizeXOrVector;
162
+ sizeY = sizeYOrSpeed;
163
+ speedX = speedXOrUndefined;
164
+ speedY = speedYOrUndefined;
165
+ }
166
+ this._queue.add(new ScaleTo(this._entity, sizeX, sizeY, speedX, speedY));
167
+ return this;
168
+ }
169
+ scaleBy(sizeOffsetXOrVector, sizeOffsetYOrSpeed, speed) {
170
+ let sizeOffsetX = 1;
171
+ let sizeOffsetY = 1;
172
+ if (sizeOffsetXOrVector instanceof Vector) {
173
+ sizeOffsetX = sizeOffsetXOrVector.x;
174
+ sizeOffsetY = sizeOffsetXOrVector.y;
175
+ speed = sizeOffsetYOrSpeed;
176
+ }
177
+ if (typeof sizeOffsetXOrVector === 'number' && typeof sizeOffsetYOrSpeed === 'number') {
178
+ sizeOffsetX = sizeOffsetXOrVector;
179
+ sizeOffsetY = sizeOffsetYOrSpeed;
180
+ }
181
+ this._queue.add(new ScaleBy(this._entity, sizeOffsetX, sizeOffsetY, speed));
182
+ return this;
183
+ }
184
+ /**
185
+ * This method will cause an actor to blink (become visible and not
186
+ * visible). Optionally, you may specify the number of blinks. Specify the amount of time
187
+ * the actor should be visible per blink, and the amount of time not visible.
188
+ * This method is part of the actor 'Action' fluent API allowing action chaining.
189
+ * @param timeVisible The amount of time to stay visible per blink in milliseconds
190
+ * @param timeNotVisible The amount of time to stay not visible per blink in milliseconds
191
+ * @param numBlinks The number of times to blink
192
+ */
193
+ blink(timeVisible, timeNotVisible, numBlinks = 1) {
194
+ this._queue.add(new Blink(this._entity, timeVisible, timeNotVisible, numBlinks));
195
+ return this;
196
+ }
197
+ /**
198
+ * This method will cause an actor's opacity to change from its current value
199
+ * to the provided value by a specified time (in milliseconds). This method is
200
+ * part of the actor 'Action' fluent API allowing action chaining.
201
+ * @param opacity The ending opacity
202
+ * @param time The time it should take to fade the actor (in milliseconds)
203
+ */
204
+ fade(opacity, time) {
205
+ this._queue.add(new Fade(this._entity, opacity, time));
206
+ return this;
207
+ }
208
+ /**
209
+ * This method will delay the next action from executing for a certain
210
+ * amount of time (in milliseconds). This method is part of the actor
211
+ * 'Action' fluent API allowing action chaining.
212
+ * @param time The amount of time to delay the next action in the queue from executing in milliseconds
213
+ */
214
+ delay(time) {
215
+ this._queue.add(new Delay(time));
216
+ return this;
217
+ }
218
+ /**
219
+ * This method will add an action to the queue that will remove the actor from the
220
+ * scene once it has completed its previous Any actions on the
221
+ * action queue after this action will not be executed.
222
+ */
223
+ die() {
224
+ this._queue.add(new Die(this._entity));
225
+ return this;
226
+ }
227
+ /**
228
+ * This method allows you to call an arbitrary method as the next action in the
229
+ * action queue. This is useful if you want to execute code in after a specific
230
+ * action, i.e An actor arrives at a destination after traversing a path
231
+ */
232
+ callMethod(method) {
233
+ this._queue.add(new CallMethod(method));
234
+ return this;
235
+ }
236
+ /**
237
+ * This method will cause the actor to repeat all of the actions built in
238
+ * the `repeatBuilder` callback. If the number of repeats
239
+ * is not specified it will repeat forever. This method is part of
240
+ * the actor 'Action' fluent API allowing action chaining
241
+ *
242
+ * ```typescript
243
+ * // Move up in a zig-zag by repeated moveBy's
244
+ * actor.actions.repeat(repeatCtx => {
245
+ * repeatCtx.moveBy(10, 0, 10);
246
+ * repeatCtx.moveBy(0, 10, 10);
247
+ * }, 5);
248
+ * ```
249
+ * @param repeatBuilder The builder to specify the repeatable list of actions
250
+ * @param times The number of times to repeat all the previous actions in the action queue. If nothing is specified the actions
251
+ * will repeat forever
252
+ */
253
+ repeat(repeatBuilder, times) {
254
+ if (!times) {
255
+ this.repeatForever(repeatBuilder);
256
+ return this;
257
+ }
258
+ this._queue.add(new Repeat(this._entity, repeatBuilder, times));
259
+ return this;
260
+ }
261
+ /**
262
+ * This method will cause the actor to repeat all of the actions built in
263
+ * the `repeatBuilder` callback. If the number of repeats
264
+ * is not specified it will repeat forever. This method is part of
265
+ * the actor 'Action' fluent API allowing action chaining
266
+ *
267
+ * ```typescript
268
+ * // Move up in a zig-zag by repeated moveBy's
269
+ * actor.actions.repeat(repeatCtx => {
270
+ * repeatCtx.moveBy(10, 0, 10);
271
+ * repeatCtx.moveBy(0, 10, 10);
272
+ * }, 5);
273
+ * ```
274
+ * @param repeatBuilder The builder to specify the repeatable list of actions
275
+ */
276
+ repeatForever(repeatBuilder) {
277
+ this._queue.add(new RepeatForever(this._entity, repeatBuilder));
278
+ return this;
279
+ }
280
+ /**
281
+ * This method will cause the entity to follow another at a specified distance
282
+ * @param entity The entity to follow
283
+ * @param followDistance The distance to maintain when following, if not specified the actor will follow at the current distance.
284
+ */
285
+ follow(entity, followDistance) {
286
+ if (followDistance === undefined) {
287
+ this._queue.add(new Follow(this._entity, entity));
288
+ }
289
+ else {
290
+ this._queue.add(new Follow(this._entity, entity, followDistance));
291
+ }
292
+ return this;
293
+ }
294
+ /**
295
+ * This method will cause the entity to move towards another until they
296
+ * collide "meet" at a specified speed.
297
+ * @param entity The entity to meet
298
+ * @param speed The speed in pixels per second to move, if not specified it will match the speed of the other actor
299
+ */
300
+ meet(entity, speed) {
301
+ if (speed === undefined) {
302
+ this._queue.add(new Meet(this._entity, entity));
303
+ }
304
+ else {
305
+ this._queue.add(new Meet(this._entity, entity, speed));
306
+ }
307
+ return this;
308
+ }
309
+ /**
310
+ * Returns a promise that resolves when the current action queue up to now
311
+ * is finished.
312
+ */
313
+ toPromise() {
314
+ const temp = new Promise((resolve) => {
315
+ this._queue.add(new CallMethod(() => {
316
+ resolve();
317
+ }));
318
+ });
319
+ return temp;
320
+ }
321
+ }
322
+ //# sourceMappingURL=ActionContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionContext.js","sourceRoot":"","sources":["../../../src/engine/Actions/ActionContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Action Queues represent an ordered sequence of actions
3
+ *
4
+ * Action queues are part of the [[ActionContext|Action API]] and
5
+ * store the list of actions to be executed for an [[Actor]].
6
+ *
7
+ * Actors implement [[Actor.actions]] which can be manipulated by
8
+ * advanced users to adjust the actions currently being executed in the
9
+ * queue.
10
+ */
11
+ export class ActionQueue {
12
+ constructor(entity) {
13
+ this._actions = [];
14
+ this._completedActions = [];
15
+ this._entity = entity;
16
+ }
17
+ /**
18
+ * Add an action to the sequence
19
+ * @param action
20
+ */
21
+ add(action) {
22
+ this._actions.push(action);
23
+ }
24
+ /**
25
+ * Remove an action by reference from the sequence
26
+ * @param action
27
+ */
28
+ remove(action) {
29
+ const index = this._actions.indexOf(action);
30
+ this._actions.splice(index, 1);
31
+ }
32
+ /**
33
+ * Removes all actions from this sequence
34
+ */
35
+ clearActions() {
36
+ this._actions.length = 0;
37
+ this._completedActions.length = 0;
38
+ if (this._currentAction) {
39
+ this._currentAction.stop();
40
+ }
41
+ }
42
+ /**
43
+ *
44
+ * @returns The total list of actions in this sequence complete or not
45
+ */
46
+ getActions() {
47
+ return this._actions.concat(this._completedActions);
48
+ }
49
+ /**
50
+ *
51
+ * @returns `true` if there are more actions to process in the sequence
52
+ */
53
+ hasNext() {
54
+ return this._actions.length > 0;
55
+ }
56
+ /**
57
+ * @returns `true` if the current sequence of actions is done
58
+ */
59
+ isComplete() {
60
+ return this._actions.length === 0;
61
+ }
62
+ /**
63
+ * Resets the sequence of actions, this is used to restart a sequence from the beginning
64
+ */
65
+ reset() {
66
+ this._actions = this.getActions();
67
+ const len = this._actions.length;
68
+ for (let i = 0; i < len; i++) {
69
+ this._actions[i].reset();
70
+ }
71
+ this._completedActions = [];
72
+ }
73
+ /**
74
+ * Update the queue which updates actions and handles completing actions
75
+ * @param elapsedMs
76
+ */
77
+ update(elapsedMs) {
78
+ if (this._actions.length > 0) {
79
+ this._currentAction = this._actions[0];
80
+ this._currentAction.update(elapsedMs);
81
+ if (this._currentAction.isComplete(this._entity)) {
82
+ this._completedActions.push(this._actions.shift());
83
+ }
84
+ }
85
+ }
86
+ }
87
+ //# sourceMappingURL=ActionQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionQueue.js","sourceRoot":"","sources":["../../../src/engine/Actions/ActionQueue.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,OAAO,WAAW;IAKtB,YAAY,MAAc;QAHlB,aAAQ,GAAa,EAAE,CAAC;QAExB,sBAAiB,GAAa,EAAE,CAAC;QAEvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,MAAc;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,MAAc;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,SAAiB;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEtC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Actionable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Actionable.js","sourceRoot":"","sources":["../../../src/engine/Actions/Actionable.ts"],"names":[],"mappings":""}
@@ -0,0 +1,195 @@
1
+ import { ActionContext } from './ActionContext';
2
+ import { Component } from '../EntityComponentSystem/Component';
3
+ import { MotionComponent } from '../EntityComponentSystem/Components/MotionComponent';
4
+ import { TransformComponent } from '../EntityComponentSystem/Components/TransformComponent';
5
+ ;
6
+ export class ActionsComponent extends Component {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.type = 'ex.actions';
10
+ this.dependencies = [TransformComponent, MotionComponent];
11
+ }
12
+ onAdd(entity) {
13
+ this._ctx = new ActionContext(entity);
14
+ }
15
+ onRemove() {
16
+ this._ctx = null;
17
+ }
18
+ /**
19
+ * Returns the internal action queue
20
+ * @returns action queue
21
+ */
22
+ getQueue() {
23
+ var _a;
24
+ return (_a = this._ctx) === null || _a === void 0 ? void 0 : _a.getQueue();
25
+ }
26
+ runAction(action) {
27
+ var _a;
28
+ return (_a = this._ctx) === null || _a === void 0 ? void 0 : _a.runAction(action);
29
+ }
30
+ /**
31
+ * Updates the internal action context, performing action and moving through the internal queue
32
+ * @param elapsedMs
33
+ */
34
+ update(elapsedMs) {
35
+ var _a;
36
+ return (_a = this._ctx) === null || _a === void 0 ? void 0 : _a.update(elapsedMs);
37
+ }
38
+ /**
39
+ * Clears all queued actions from the Actor
40
+ */
41
+ clearActions() {
42
+ var _a;
43
+ (_a = this._ctx) === null || _a === void 0 ? void 0 : _a.clearActions();
44
+ }
45
+ easeTo(...args) {
46
+ return this._ctx.easeTo.apply(this._ctx, args);
47
+ }
48
+ easeBy(...args) {
49
+ return this._ctx.easeBy.apply(this._ctx, args);
50
+ }
51
+ moveTo(xOrPos, yOrSpeed, speedOrUndefined) {
52
+ return this._ctx.moveTo.apply(this._ctx, [xOrPos, yOrSpeed, speedOrUndefined]);
53
+ }
54
+ moveBy(xOffsetOrVector, yOffsetOrSpeed, speedOrUndefined) {
55
+ return this._ctx.moveBy.apply(this._ctx, [xOffsetOrVector, yOffsetOrSpeed, speedOrUndefined]);
56
+ }
57
+ /**
58
+ * This method will rotate an actor to the specified angle at the speed
59
+ * specified (in radians per second) and return back the actor. This
60
+ * method is part of the actor 'Action' fluent API allowing action chaining.
61
+ * @param angleRadians The angle to rotate to in radians
62
+ * @param speed The angular velocity of the rotation specified in radians per second
63
+ * @param rotationType The [[RotationType]] to use for this rotation
64
+ */
65
+ rotateTo(angleRadians, speed, rotationType) {
66
+ return this._ctx.rotateTo(angleRadians, speed, rotationType);
67
+ }
68
+ /**
69
+ * This method will rotate an actor by the specified angle offset, from it's current rotation given a certain speed
70
+ * in radians/sec and return back the actor. This method is part
71
+ * of the actor 'Action' fluent API allowing action chaining.
72
+ * @param angleRadiansOffset The angle to rotate to in radians relative to the current rotation
73
+ * @param speed The speed in radians/sec the actor should rotate at
74
+ * @param rotationType The [[RotationType]] to use for this rotation, default is shortest path
75
+ */
76
+ rotateBy(angleRadiansOffset, speed, rotationType) {
77
+ return this._ctx.rotateBy(angleRadiansOffset, speed, rotationType);
78
+ }
79
+ scaleTo(sizeXOrVector, sizeYOrSpeed, speedXOrUndefined, speedYOrUndefined) {
80
+ return this._ctx.scaleTo.apply(this._ctx, [sizeXOrVector, sizeYOrSpeed, speedXOrUndefined, speedYOrUndefined]);
81
+ }
82
+ scaleBy(sizeOffsetXOrVector, sizeOffsetYOrSpeed, speed) {
83
+ return this._ctx.scaleBy.apply(this._ctx, [sizeOffsetXOrVector, sizeOffsetYOrSpeed, speed]);
84
+ }
85
+ /**
86
+ * This method will cause an actor to blink (become visible and not
87
+ * visible). Optionally, you may specify the number of blinks. Specify the amount of time
88
+ * the actor should be visible per blink, and the amount of time not visible.
89
+ * This method is part of the actor 'Action' fluent API allowing action chaining.
90
+ * @param timeVisible The amount of time to stay visible per blink in milliseconds
91
+ * @param timeNotVisible The amount of time to stay not visible per blink in milliseconds
92
+ * @param numBlinks The number of times to blink
93
+ */
94
+ blink(timeVisible, timeNotVisible, numBlinks) {
95
+ return this._ctx.blink(timeVisible, timeNotVisible, numBlinks);
96
+ }
97
+ /**
98
+ * This method will cause an actor's opacity to change from its current value
99
+ * to the provided value by a specified time (in milliseconds). This method is
100
+ * part of the actor 'Action' fluent API allowing action chaining.
101
+ * @param opacity The ending opacity
102
+ * @param time The time it should take to fade the actor (in milliseconds)
103
+ */
104
+ fade(opacity, time) {
105
+ return this._ctx.fade(opacity, time);
106
+ }
107
+ /**
108
+ * This method will delay the next action from executing for a certain
109
+ * amount of time (in milliseconds). This method is part of the actor
110
+ * 'Action' fluent API allowing action chaining.
111
+ * @param time The amount of time to delay the next action in the queue from executing in milliseconds
112
+ */
113
+ delay(time) {
114
+ return this._ctx.delay(time);
115
+ }
116
+ /**
117
+ * This method will add an action to the queue that will remove the actor from the
118
+ * scene once it has completed its previous Any actions on the
119
+ * action queue after this action will not be executed.
120
+ */
121
+ die() {
122
+ return this._ctx.die();
123
+ }
124
+ /**
125
+ * This method allows you to call an arbitrary method as the next action in the
126
+ * action queue. This is useful if you want to execute code in after a specific
127
+ * action, i.e An actor arrives at a destination after traversing a path
128
+ */
129
+ callMethod(method) {
130
+ return this._ctx.callMethod(method);
131
+ }
132
+ /**
133
+ * This method will cause the actor to repeat all of the actions built in
134
+ * the `repeatBuilder` callback. If the number of repeats
135
+ * is not specified it will repeat forever. This method is part of
136
+ * the actor 'Action' fluent API allowing action chaining
137
+ *
138
+ * ```typescript
139
+ * // Move up in a zig-zag by repeated moveBy's
140
+ * actor.actions.repeat(repeatCtx => {
141
+ * repeatCtx.moveBy(10, 0, 10);
142
+ * repeatCtx.moveBy(0, 10, 10);
143
+ * }, 5);
144
+ * ```
145
+ * @param repeatBuilder The builder to specify the repeatable list of actions
146
+ * @param times The number of times to repeat all the previous actions in the action queue. If nothing is specified the actions
147
+ * will repeat forever
148
+ */
149
+ repeat(repeatBuilder, times) {
150
+ return this._ctx.repeat(repeatBuilder, times);
151
+ }
152
+ /**
153
+ * This method will cause the actor to repeat all of the actions built in
154
+ * the `repeatBuilder` callback. If the number of repeats
155
+ * is not specified it will repeat forever. This method is part of
156
+ * the actor 'Action' fluent API allowing action chaining
157
+ *
158
+ * ```typescript
159
+ * // Move up in a zig-zag by repeated moveBy's
160
+ * actor.actions.repeat(repeatCtx => {
161
+ * repeatCtx.moveBy(10, 0, 10);
162
+ * repeatCtx.moveBy(0, 10, 10);
163
+ * }, 5);
164
+ * ```
165
+ * @param repeatBuilder The builder to specify the repeatable list of actions
166
+ */
167
+ repeatForever(repeatBuilder) {
168
+ return this._ctx.repeatForever(repeatBuilder);
169
+ }
170
+ /**
171
+ * This method will cause the entity to follow another at a specified distance
172
+ * @param entity The entity to follow
173
+ * @param followDistance The distance to maintain when following, if not specified the actor will follow at the current distance.
174
+ */
175
+ follow(entity, followDistance) {
176
+ return this._ctx.follow(entity, followDistance);
177
+ }
178
+ /**
179
+ * This method will cause the entity to move towards another until they
180
+ * collide "meet" at a specified speed.
181
+ * @param entity The entity to meet
182
+ * @param speed The speed in pixels per second to move, if not specified it will match the speed of the other actor
183
+ */
184
+ meet(entity, speed) {
185
+ return this._ctx.meet(entity, speed);
186
+ }
187
+ /**
188
+ * Returns a promise that resolves when the current action queue up to now
189
+ * is finished.
190
+ */
191
+ toPromise() {
192
+ return this._ctx.toPromise();
193
+ }
194
+ }
195
+ //# sourceMappingURL=ActionsComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionsComponent.js","sourceRoot":"","sources":["../../../src/engine/Actions/ActionsComponent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { isAddedSystemEntity, System, SystemType } from '../EntityComponentSystem/System';
2
+ import { ActionsComponent } from './ActionsComponent';
3
+ export class ActionsSystem extends System {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.types = ['ex.actions'];
7
+ this.systemType = SystemType.Update;
8
+ this.priority = -1;
9
+ this._actions = [];
10
+ }
11
+ notify(entityAddedOrRemoved) {
12
+ if (isAddedSystemEntity(entityAddedOrRemoved)) {
13
+ const action = entityAddedOrRemoved.data.get(ActionsComponent);
14
+ this._actions.push(action);
15
+ }
16
+ else {
17
+ const action = entityAddedOrRemoved.data.get(ActionsComponent);
18
+ const index = this._actions.indexOf(action);
19
+ if (index > -1) {
20
+ this._actions.splice(index, 1);
21
+ }
22
+ }
23
+ }
24
+ update(_entities, delta) {
25
+ for (const actions of this._actions) {
26
+ actions.update(delta);
27
+ }
28
+ }
29
+ }
30
+ //# sourceMappingURL=ActionsSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionsSystem.js","sourceRoot":"","sources":["../../../src/engine/Actions/ActionsSystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,mBAAmB,EAAiB,MAAM,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACtH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,OAAO,aAAc,SAAQ,MAAwB;IAA3D;;QACkB,UAAK,GAAG,CAAC,YAAY,CAAU,CAAC;QAChD,eAAU,GAAG,UAAU,CAAC,MAAM,CAAC;QAC/B,aAAQ,GAAG,CAAC,CAAC,CAAC;QAEN,aAAQ,GAAuB,EAAE,CAAC;IAmB5C,CAAC;IAlBQ,MAAM,CAAC,oBAAiD;QAC7D,IAAI,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAmB,EAAE,KAAa;QACvC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}