excalibur 0.33.0-alpha.26 → 0.33.0-alpha.262
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitmodules +3 -0
- package/.nvmrc +1 -1
- package/CHANGELOG.md +186 -8
- package/build/{dist → esm}/actions/action/move-by.d.ts +1 -4
- package/build/{dist → esm}/actions/action/move-to.d.ts +1 -4
- package/build/{dist → esm}/actions/action/rotate-by.d.ts +9 -3
- package/build/{dist → esm}/actions/action-context.d.ts +9 -43
- package/build/{dist → esm}/actions/actions-component.d.ts +3 -41
- package/build/{dist → esm}/actions/index.d.ts +0 -2
- package/build/{dist → esm}/actor.d.ts +32 -30
- package/build/{dist → esm}/camera.d.ts +13 -10
- package/build/{dist → esm}/collision/body-component.d.ts +38 -20
- package/build/{dist → esm}/collision/bounding-box.d.ts +3 -10
- package/build/{dist → esm}/collision/collider-component.d.ts +80 -4
- package/build/{dist → esm}/collision/colliders/circle-collider.d.ts +8 -0
- package/build/{dist → esm}/collision/colliders/closest-line-jump-table.d.ts +1 -1
- package/build/{dist → esm}/collision/colliders/collider.d.ts +7 -1
- package/build/{dist/collision/colliders/shape.d.ts → esm/collision/colliders/colliders.d.ts} +50 -0
- package/build/{dist → esm}/collision/colliders/collision-jump-table.d.ts +2 -1
- package/build/{dist → esm}/collision/colliders/composite-collider.d.ts +3 -2
- package/build/{dist → esm}/collision/colliders/edge-collider.d.ts +25 -1
- package/build/{dist → esm}/collision/colliders/polygon-collider.d.ts +23 -0
- package/build/esm/collision/colliders/sat-shape.d.ts +27 -0
- package/build/{dist → esm}/collision/colliders/separating-axis.d.ts +11 -6
- package/build/{dist → esm}/collision/collision-system.d.ts +5 -0
- package/build/{dist → esm}/collision/detection/collision-contact.d.ts +6 -0
- package/build/{dist → esm}/collision/detection/dynamic-tree.d.ts +9 -11
- package/build/{dist → esm}/collision/detection/pair.d.ts +9 -0
- package/build/{dist → esm}/collision/detection/quad-tree.d.ts +2 -2
- package/build/{dist → esm}/collision/detection/sparse-hash-grid-collision-processor.d.ts +7 -2
- package/build/{dist → esm}/collision/detection/sparse-hash-grid.d.ts +11 -3
- package/build/{dist → esm}/collision/group/collision-group-manager.d.ts +1 -1
- package/build/{dist → esm}/collision/index.d.ts +2 -1
- package/build/{dist → esm}/collision/physics-config.d.ts +7 -0
- package/build/{dist → esm}/collision/physics-world.d.ts +34 -33
- package/build/esm/collision/solver/realistic-solver.d.ts +50 -0
- package/build/{dist → esm}/collision/solver/solver.d.ts +4 -2
- package/build/{dist → esm}/color.d.ts +42 -2
- package/build/{dist → esm}/debug/debug-config.d.ts +16 -0
- package/build/{dist → esm}/director/director.d.ts +13 -8
- package/build/{dist → esm}/director/slide.d.ts +2 -2
- package/build/{dist → esm}/director/transition.d.ts +1 -4
- package/build/{dist → esm}/engine.d.ts +58 -8
- package/build/{dist → esm}/entity-component-system/component.d.ts +7 -1
- package/build/{dist → esm}/entity-component-system/components/motion-component.d.ts +1 -0
- package/build/esm/entity-component-system/components/pause-component.d.ts +11 -0
- package/build/{dist → esm}/entity-component-system/components/tags-component.d.ts +1 -0
- package/build/{dist → esm}/entity-component-system/components/transform-component.d.ts +24 -0
- package/build/{dist → esm}/entity-component-system/entity.d.ts +0 -10
- package/build/{dist → esm}/entity-component-system/index.d.ts +1 -1
- package/build/{dist → esm}/entity-component-system/query.d.ts +1 -1
- package/build/{dist → esm}/entity-component-system/system.d.ts +7 -0
- package/build/{dist → esm}/entity-component-system/world.d.ts +1 -5
- package/build/{dist → esm}/events/media-events.d.ts +2 -2
- package/build/{dist → esm}/events.d.ts +22 -2
- package/build/esm/excalibur.development.js +36938 -33946
- package/build/esm/excalibur.js +36938 -33946
- package/build/esm/excalibur.min.development.js +18202 -23031
- package/build/esm/excalibur.min.js +18202 -23031
- package/build/{dist → esm}/graphics/animation.d.ts +15 -5
- package/build/{dist → esm}/graphics/context/circle-renderer/circle-renderer.d.ts +5 -0
- package/build/{dist → esm}/graphics/context/debug-text.d.ts +13 -1
- package/build/{dist → esm}/graphics/context/excalibur-graphics-context-2d-canvas.d.ts +13 -3
- package/build/{dist → esm}/graphics/context/excalibur-graphics-context-webgl.d.ts +43 -6
- package/build/{dist → esm}/graphics/context/excalibur-graphics-context.d.ts +108 -4
- package/build/esm/graphics/context/framebuffer.d.ts +154 -0
- package/build/esm/graphics/context/glsl.d.ts +47 -0
- package/build/{dist → esm}/graphics/context/material-renderer/material-renderer.d.ts +1 -0
- package/build/esm/graphics/context/material.d.ts +208 -0
- package/build/esm/graphics/context/shader-pipeline/effects/bloom-effect.d.ts +80 -0
- package/build/esm/graphics/context/shader-pipeline/effects/blur-passes.d.ts +75 -0
- package/build/esm/graphics/context/shader-pipeline/effects/glow-passes.d.ts +93 -0
- package/build/esm/graphics/context/shader-pipeline/shader-pass.d.ts +138 -0
- package/build/esm/graphics/context/shader-pipeline/shader-pipeline.d.ts +91 -0
- package/build/{dist → esm}/graphics/context/shader.d.ts +43 -6
- package/build/{dist → esm}/graphics/context/texture-loader.d.ts +1 -1
- package/build/{dist → esm}/graphics/context/webgl-util.d.ts +2 -2
- package/build/{dist → esm}/graphics/debug-graphics-component.d.ts +1 -0
- package/build/{dist → esm}/graphics/filtering.d.ts +1 -1
- package/build/{dist → esm}/graphics/font-common.d.ts +2 -2
- package/build/{dist → esm}/graphics/font-text-instance.d.ts +29 -8
- package/build/{dist → esm}/graphics/font.d.ts +4 -3
- package/build/{dist → esm}/graphics/graphics-component.d.ts +80 -15
- package/build/{dist → esm}/graphics/graphics-group.d.ts +6 -0
- package/build/{dist → esm}/graphics/image-source.d.ts +2 -1
- package/build/{dist → esm}/graphics/index.d.ts +8 -0
- package/build/{dist → esm}/graphics/parallax-component.d.ts +1 -0
- package/build/{dist → esm}/graphics/post-processor/color-blindness-post-processor.d.ts +3 -5
- package/build/esm/graphics/post-processor/post-processor.d.ts +66 -0
- package/build/esm/graphics/post-processor/shader-pipeline-post-processor.d.ts +45 -0
- package/build/{dist → esm}/graphics/sprite-font.d.ts +3 -3
- package/build/{dist → esm}/index.d.ts +7 -5
- package/build/{dist → esm}/input/gamepad.d.ts +4 -7
- package/build/{dist → esm}/input/keyboard.d.ts +3 -3
- package/build/{dist → esm}/input/pointer-component.d.ts +1 -0
- package/build/{dist → esm}/input/pointer-event-receiver.d.ts +3 -0
- package/build/{dist → esm}/label.d.ts +2 -2
- package/build/esm/lighting/cone-light-component.d.ts +47 -0
- package/build/esm/lighting/darkness-component.d.ts +34 -0
- package/build/esm/lighting/flicker-options.d.ts +17 -0
- package/build/esm/lighting/flicker-system.d.ts +19 -0
- package/build/esm/lighting/index.d.ts +8 -0
- package/build/esm/lighting/light-occluder-component.d.ts +66 -0
- package/build/esm/lighting/lighting-config.d.ts +47 -0
- package/build/esm/lighting/lighting-system.d.ts +153 -0
- package/build/esm/lighting/point-light-component.d.ts +46 -0
- package/build/{dist → esm}/math/affine-matrix.d.ts +8 -1
- package/build/esm/math/coord-plane.d.ts +52 -0
- package/build/{dist → esm}/math/graph.d.ts +14 -3
- package/build/{dist → esm}/math/index.d.ts +2 -0
- package/build/{dist → esm}/math/line-segment.d.ts +1 -1
- package/build/{dist → esm}/math/matrix.d.ts +25 -0
- package/build/{dist → esm}/math/ray.d.ts +1 -1
- package/build/{dist → esm}/math/transform.d.ts +9 -0
- package/build/{dist → esm}/math/vector.d.ts +16 -13
- package/build/esm/math/vector3.d.ts +163 -0
- package/build/esm/math/vector4.d.ts +157 -0
- package/build/{dist → esm}/particles/gpu-particle-emitter.d.ts +2 -2
- package/build/{dist → esm}/particles/particle-emitter.d.ts +2 -2
- package/build/{dist → esm}/particles/particles.d.ts +8 -2
- package/build/esm/plugin.d.ts +253 -0
- package/build/{dist → esm}/resources/resource.d.ts +8 -0
- package/build/{dist → esm}/resources/sound/sound-manager.d.ts +1 -1
- package/build/{dist → esm}/resources/sound/sound.d.ts +5 -1
- package/build/{dist → esm}/scene.d.ts +18 -6
- package/build/{dist → esm}/screen-element.d.ts +2 -2
- package/build/{dist → esm}/screen.d.ts +97 -29
- package/build/{dist → esm}/tile-map/isometric-entity-component.d.ts +1 -0
- package/build/{dist → esm}/tile-map/isometric-map.d.ts +0 -10
- package/build/{dist → esm}/tile-map/tile-map.d.ts +13 -0
- package/build/{dist → esm}/timer.d.ts +5 -8
- package/build/{dist/util/pool.d.ts → esm/util/arena-pool.d.ts} +15 -4
- package/build/{dist → esm}/util/browser.d.ts +8 -0
- package/build/{dist → esm}/util/detector.d.ts +1 -1
- package/build/{dist → esm}/util/draw-util.d.ts +2 -2
- package/build/{dist → esm}/util/index.d.ts +1 -1
- package/build/esm/util/pause-system.d.ts +18 -0
- package/build/{dist → esm}/util/rental-pool.d.ts +1 -0
- package/build/esm/util/serializer.d.ts +128 -0
- package/build/{dist → esm}/util/sound.d.ts +1 -0
- package/build/{dist → esm}/util/state-machine.d.ts +1 -1
- package/build/esm/util/string.d.ts +6 -0
- package/eslint.config.mjs +4 -10
- package/package.json +41 -49
- package/vite.config.common.js +1 -1
- package/vite.config.ts +3 -2
- package/vitest.config.ts +4 -4
- package/.devcontainer/devcontainer.json +0 -26
- package/.husky/pre-commit +0 -1
- package/build/dist/collision/solver/realistic-solver.d.ts +0 -28
- package/build/dist/entity-component-system/tag-query.d.ts +0 -28
- package/build/dist/excalibur.development.js +0 -34200
- package/build/dist/excalibur.js +0 -34200
- package/build/dist/excalibur.min.development.js +0 -931
- package/build/dist/excalibur.min.js +0 -931
- package/build/dist/graphics/context/material.d.ts +0 -102
- package/build/dist/graphics/context/render-source.d.ts +0 -7
- package/build/dist/graphics/context/render-target.d.ts +0 -60
- package/build/dist/graphics/post-processor/post-processor.d.ts +0 -36
- package/build/dist/math/coord-plane.d.ts +0 -15
- package/build/dist/util/decorators.d.ts +0 -15
- package/build/dist/util/easing-functions.d.ts +0 -89
- package/deno.json +0 -10
- package/playground/README.md +0 -71
- package/playground/index.html +0 -75
- package/playground/package-lock.json +0 -1954
- package/playground/package.json +0 -27
- package/playground/public/favicon.ico +0 -0
- package/playground/public/icon.png +0 -0
- package/playground/public/logo-white@2x.png +0 -0
- package/playground/public/logo@2x.png +0 -0
- package/playground/public/player-run.png +0 -0
- package/playground/public/rpg-audio/License.txt +0 -21
- package/playground/public/rpg-audio/audio/handleCoins.ogg +0 -0
- package/playground/public/social.jpg +0 -0
- package/playground/public/social.png +0 -0
- package/playground/public/tiny-town/License.txt +0 -22
- package/playground/public/tiny-town/tilemap/tilemap.png +0 -0
- package/playground/tsconfig.json +0 -26
- package/playground/tsdown.config.ts +0 -13
- package/playground/vite.config.ts +0 -5
- /package/build/{dist → esm}/actions/action/action-sequence.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/blink.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/call-method.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/curve-by.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/curve-to.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/delay.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/die.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/ease-by.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/ease-to.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/fade.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/flash.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/follow.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/meet.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/parallel-actions.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/repeat-forever.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/repeat.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/rotate-to.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/scale-by.d.ts +0 -0
- /package/build/{dist → esm}/actions/action/scale-to.d.ts +0 -0
- /package/build/{dist → esm}/actions/action-queue.d.ts +0 -0
- /package/build/{dist → esm}/actions/action.d.ts +0 -0
- /package/build/{dist → esm}/actions/actionable.d.ts +0 -0
- /package/build/{dist → esm}/actions/actions-system.d.ts +0 -0
- /package/build/{dist → esm}/collision/collision-type.d.ts +0 -0
- /package/build/{dist → esm}/collision/detection/collision-processor.d.ts +0 -0
- /package/build/{dist → esm}/collision/detection/dynamic-tree-collision-processor.d.ts +0 -0
- /package/build/{dist → esm}/collision/detection/ray-cast-hit.d.ts +0 -0
- /package/build/{dist → esm}/collision/detection/ray-cast-options.d.ts +0 -0
- /package/build/{dist → esm}/collision/detection/spatial-partition-strategy.d.ts +0 -0
- /package/build/{dist → esm}/collision/group/collision-group.d.ts +0 -0
- /package/build/{dist → esm}/collision/integrator.d.ts +0 -0
- /package/build/{dist → esm}/collision/island.d.ts +0 -0
- /package/build/{dist → esm}/collision/motion-system.d.ts +0 -0
- /package/build/{dist → esm}/collision/side.d.ts +0 -0
- /package/build/{dist → esm}/collision/solver/arcade-solver.d.ts +0 -0
- /package/build/{dist → esm}/collision/solver/contact-bias.d.ts +0 -0
- /package/build/{dist → esm}/collision/solver/contact-constraint-point.d.ts +0 -0
- /package/build/{dist → esm}/collision/solver-strategy.d.ts +0 -0
- /package/build/{dist → esm}/context.d.ts +0 -0
- /package/build/{dist → esm}/debug/debug-flags.d.ts +0 -0
- /package/build/{dist → esm}/debug/debug-system.d.ts +0 -0
- /package/build/{dist → esm}/debug/index.d.ts +0 -0
- /package/build/{dist → esm}/deprecated.d.ts +0 -0
- /package/build/{dist → esm}/director/cross-fade.d.ts +0 -0
- /package/build/{dist → esm}/director/default-loader.d.ts +0 -0
- /package/build/{dist → esm}/director/fade-in-out.d.ts +0 -0
- /package/build/{dist → esm}/director/index.d.ts +0 -0
- /package/build/{dist → esm}/director/loader.d.ts +0 -0
- /package/build/{dist → esm}/entity-component-system/entity-manager.d.ts +0 -0
- /package/build/{dist → esm}/entity-component-system/priority.d.ts +0 -0
- /package/build/{dist → esm}/entity-component-system/query-manager.d.ts +0 -0
- /package/build/{dist → esm}/entity-component-system/system-manager.d.ts +0 -0
- /package/build/{dist → esm}/entity-component-system/types.d.ts +0 -0
- /package/build/{dist → esm}/event-emitter.d.ts +0 -0
- /package/build/{dist → esm}/events/ex-event.d.ts +0 -0
- /package/build/{dist → esm}/events/pointer-events.d.ts +0 -0
- /package/build/{dist → esm}/excalibur.d.ts +0 -0
- /package/build/{dist → esm}/flags.d.ts +0 -0
- /package/build/{dist → esm}/garbage-collector.d.ts +0 -0
- /package/build/{dist → esm}/graphics/canvas.d.ts +0 -0
- /package/build/{dist → esm}/graphics/circle.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/debug-circle-renderer/debug-circle-renderer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/debug-line-renderer/debug-line-renderer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/debug-point-renderer/debug-point-renderer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/draw-call.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/image-renderer/image-renderer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/image-renderer-v2/image-renderer-v2.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/particle-renderer/particle-renderer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/quad-index-buffer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/rectangle-renderer/rectangle-renderer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/renderer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/screen-pass-painter/screen-pass-painter.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/state-stack.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/transform-stack.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/uniform-buffer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/vertex-buffer.d.ts +0 -0
- /package/build/{dist → esm}/graphics/context/vertex-layout.d.ts +0 -0
- /package/build/{dist → esm}/graphics/debug.d.ts +0 -0
- /package/build/{dist → esm}/graphics/font-cache.d.ts +0 -0
- /package/build/{dist → esm}/graphics/graphic.d.ts +0 -0
- /package/build/{dist → esm}/graphics/graphics-diagnostics.d.ts +0 -0
- /package/build/{dist → esm}/graphics/graphics-system.d.ts +0 -0
- /package/build/{dist → esm}/graphics/line.d.ts +0 -0
- /package/build/{dist → esm}/graphics/nine-slice.d.ts +0 -0
- /package/build/{dist → esm}/graphics/offscreen-system.d.ts +0 -0
- /package/build/{dist → esm}/graphics/polygon.d.ts +0 -0
- /package/build/{dist → esm}/graphics/post-processor/color-blindness-mode.d.ts +0 -0
- /package/build/{dist → esm}/graphics/post-processor/screen-shader.d.ts +0 -0
- /package/build/{dist → esm}/graphics/raster.d.ts +0 -0
- /package/build/{dist → esm}/graphics/rectangle.d.ts +0 -0
- /package/build/{dist → esm}/graphics/sprite-sheet.d.ts +0 -0
- /package/build/{dist → esm}/graphics/sprite.d.ts +0 -0
- /package/build/{dist → esm}/graphics/text.d.ts +0 -0
- /package/build/{dist → esm}/graphics/tiled-animation.d.ts +0 -0
- /package/build/{dist → esm}/graphics/tiled-sprite.d.ts +0 -0
- /package/build/{dist → esm}/graphics/transform-interpolation.d.ts +0 -0
- /package/build/{dist → esm}/graphics/wrapping.d.ts +0 -0
- /package/build/{dist → esm}/id.d.ts +0 -0
- /package/build/{dist → esm}/input/capture-pointer-config.d.ts +0 -0
- /package/build/{dist → esm}/input/input-host.d.ts +0 -0
- /package/build/{dist → esm}/input/input-mapper.d.ts +0 -0
- /package/build/{dist → esm}/input/native-pointer-button.d.ts +0 -0
- /package/build/{dist → esm}/input/pointer-abstraction.d.ts +0 -0
- /package/build/{dist → esm}/input/pointer-button.d.ts +0 -0
- /package/build/{dist → esm}/input/pointer-event.d.ts +0 -0
- /package/build/{dist → esm}/input/pointer-events-to-object-dispatcher.d.ts +0 -0
- /package/build/{dist → esm}/input/pointer-scope.d.ts +0 -0
- /package/build/{dist → esm}/input/pointer-system.d.ts +0 -0
- /package/build/{dist → esm}/input/pointer-type.d.ts +0 -0
- /package/build/{dist → esm}/input/wheel-delta-mode.d.ts +0 -0
- /package/build/{dist → esm}/input/wheel-event.d.ts +0 -0
- /package/build/{dist → esm}/interfaces/audio-implementation.d.ts +0 -0
- /package/build/{dist → esm}/interfaces/audio.d.ts +0 -0
- /package/build/{dist → esm}/interfaces/clonable.d.ts +0 -0
- /package/build/{dist → esm}/interfaces/evented.d.ts +0 -0
- /package/build/{dist → esm}/interfaces/index.d.ts +0 -0
- /package/build/{dist → esm}/interfaces/lifecycle-events.d.ts +0 -0
- /package/build/{dist → esm}/interfaces/loadable.d.ts +0 -0
- /package/build/{dist → esm}/interfaces/pointer-event-handlers.d.ts +0 -0
- /package/build/{dist → esm}/math/bezier-curve.d.ts +0 -0
- /package/build/{dist → esm}/math/easings.d.ts +0 -0
- /package/build/{dist → esm}/math/global-coordinates.d.ts +0 -0
- /package/build/{dist → esm}/math/lerp.d.ts +0 -0
- /package/build/{dist → esm}/math/projection.d.ts +0 -0
- /package/build/{dist → esm}/math/random.d.ts +0 -0
- /package/build/{dist → esm}/math/rotation-type.d.ts +0 -0
- /package/build/{dist → esm}/math/util.d.ts +0 -0
- /package/build/{dist → esm}/math/vector-view.d.ts +0 -0
- /package/build/{dist → esm}/math/watch-vector.d.ts +0 -0
- /package/build/{dist → esm}/particles/emitter-type.d.ts +0 -0
- /package/build/{dist → esm}/particles/gpu-particle-renderer.d.ts +0 -0
- /package/build/{dist → esm}/particles/index.d.ts +0 -0
- /package/build/{dist → esm}/polyfill.d.ts +0 -0
- /package/build/{dist → esm}/resources/font.d.ts +0 -0
- /package/build/{dist → esm}/resources/gif.d.ts +0 -0
- /package/build/{dist → esm}/resources/index.d.ts +0 -0
- /package/build/{dist → esm}/resources/sound/audio-context.d.ts +0 -0
- /package/build/{dist → esm}/resources/sound/index.d.ts +0 -0
- /package/build/{dist → esm}/resources/sound/web-audio-instance.d.ts +0 -0
- /package/build/{dist → esm}/tile-map/index.d.ts +0 -0
- /package/build/{dist → esm}/tile-map/isometric-entity-system.d.ts +0 -0
- /package/build/{dist → esm}/trigger.d.ts +0 -0
- /package/build/{dist → esm}/util/assert.d.ts +0 -0
- /package/build/{dist → esm}/util/clock.d.ts +0 -0
- /package/build/{dist → esm}/util/coroutine.d.ts +0 -0
- /package/build/{dist → esm}/util/fps.d.ts +0 -0
- /package/build/{dist → esm}/util/future.d.ts +0 -0
- /package/build/{dist → esm}/util/iframe.d.ts +0 -0
- /package/build/{dist → esm}/util/log.d.ts +0 -0
- /package/build/{dist → esm}/util/observable.d.ts +0 -0
- /package/build/{dist → esm}/util/required.d.ts +0 -0
- /package/build/{dist → esm}/util/semaphore.d.ts +0 -0
- /package/build/{dist → esm}/util/toaster.d.ts +0 -0
- /package/build/{dist → esm}/util/util.d.ts +0 -0
- /package/build/{dist → esm}/util/watch.d.ts +0 -0
- /package/build/{dist → esm}/util/web-audio.d.ts +0 -0
package/.gitmodules
CHANGED
package/.nvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
24.
|
|
1
|
+
24.16.0
|
package/CHANGELOG.md
CHANGED
|
@@ -7,27 +7,198 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
### Breaking Changes
|
|
9
9
|
|
|
10
|
-
-
|
|
10
|
+
- Behavior change - Excalibur screen space is now consistently rooted at the top-left of the safe content area (`Screen.contentArea`) across the whole API. Previously the clipping display modes (`FitScreenAndFill`, `FitContainerAndFill`, `FitScreenAndZoom`, `FitContainerAndZoom`) disagreed about where screen space started: `CoordPlane.Screen` entities and pointer events were rooted at the content area's corner, but `Screen.worldToScreenCoordinates` returned raw canvas/resolution coordinates and `Screen.contentArea.left/top` carried the canvas-space inset. Every API now shares the single content-area-rooted definition, which fixes several pointer, transition, and `unsafeArea` bugs in the clipping display modes, but is a breaking change for code that relied on the old canvas-rooted values:
|
|
11
|
+
- `Screen.worldToScreenCoordinates(point)` now returns coordinates rooted at the content area (previously the raw camera projection in canvas/resolution coordinates). `Screen.screenToWorldCoordinates` is the exact inverse, as before.
|
|
12
|
+
- `Screen.contentArea` is now always rooted at `(0, 0)`, and `Screen.unsafeArea.topLeft` is negative by the clip amount. The canvas-space inset that `contentArea.left/top` used to carry is available from the new `Screen.contentAreaOffset`.
|
|
13
|
+
- Display modes that never clip (`Fixed`, `FitScreen`, `FillScreen`, `FitContainer`, `FillContainer`) have a `(0, 0)` offset and are unaffected.
|
|
14
|
+
|
|
15
|
+
If you need the old canvas-rooted values, for example to position an HTML overlay over the canvas, shim them by adding `Screen.contentAreaOffset` back:
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
// Before: worldToScreenCoordinates returned canvas coordinates
|
|
19
|
+
const canvasPos = engine.screen.worldToScreenCoordinates(actor.pos).add(engine.screen.contentAreaOffset);
|
|
20
|
+
|
|
21
|
+
// Before: contentArea.topLeft was the safe area corner in canvas coordinates
|
|
22
|
+
const safeAreaCorner = engine.screen.contentAreaOffset.clone();
|
|
23
|
+
```
|
|
24
|
+
- Behavior change - `rotateBy({angleRadiansOffset, duration})` with no `rotationType` now rotates by exactly the signed offset provided, preserving full and multiple turns, instead of taking the shortest path to the canonicalized target orientation. Offsets larger than `Math.PI` now travel in the direction of their sign (previously they rotated the shorter way around), and `2 * Math.PI` performs a full revolution (previously a no-op). Pass an explicit `rotationType` to keep path-based behavior
|
|
25
|
+
- Behavior change - TileMap now uses 'separate' as the `compositeStrategy` as a better default. Commonly TileMap is used to build levels, so this default aligns with the common use.
|
|
26
|
+
- Removed old legacy `ex.EasingFunctions` in favor of the [0, 1] common easing functions
|
|
27
|
+
- Removed EaseTo/EaseBy/actor.actions.(easeTo|easeBy) Action in favor of MoveTo/MoveBy/actor.actions.(moveTo|moveBy) Action with easing support
|
|
28
|
+
- Removed `body.sleeping` in favor of `isSleeping`
|
|
29
|
+
- Removed `entity.active` in favor of `isActive`
|
|
30
|
+
- Removed `actor.getGlobalPos()` in favor of `actor.globalPos` getter/setter
|
|
31
|
+
- Removed `actor.getGlobalRotation()` in favor of `actor.globalRotation` getter/setter
|
|
32
|
+
- Removed `actor.getGlobalScale()` in favor of `actor.globalScale` getter/setter
|
|
33
|
+
- Removed `BoundingBox.draw` in favor of `BoundingBox.debug`
|
|
34
|
+
- Removed typo in `engine.isFullScreen` now `engine.isFullscreen`
|
|
35
|
+
- Removed unused `tag-query.ts`
|
|
36
|
+
- Removed `world.queryTags`, `world.query(...)` can query tags
|
|
37
|
+
- Removed `Animation.durationPerFrameMs` in favor of `Animation.durationPerFrame`
|
|
38
|
+
- Removed `Vector.size` in favor of `Vector.magnitude`
|
|
39
|
+
- Behavior change - Font/Text now render more accurately and faster be using less texture space, this unfortunately is a breaking change becuase text will render slightly different.
|
|
40
|
+
- Breaking change - `Material.update()` now passes a `MaterialContext` to its callback instead of the composite `Shader`. The context carries the material's declarative `uniforms` dictionary (the recommended way to change values — they reach the composite shader and are forwarded to every pipeline pass), plus `shaders`/`shadersByName` for direct access to every compiled shader the material drives. Update code like `material.update(shader => shader.trySetUniformFloatVector('iMouse', pos))` to `material.update(context => context.uniforms.iMouse = pos)`
|
|
41
|
+
- Build: Docusaurus now throws the build on broken markdown links, broken anchors, and broken markdown images instead of warning. Any custom docs/blog content must have valid internal links, anchors, and images.
|
|
42
|
+
- Build: The engine `tsconfig.json` now uses `module: "esnext"` with `moduleResolution: "bundler"` (previously `module: "es2015"` / `moduleResolution: "node"`), and `downlevelIteration` has been removed. The per-package `tsconfig.json` overrides in `director`, `entity-component-system`, `graphics`, and `resources` have been removed in favor of the single engine `tsconfig.json`. Consumers importing source directly may need bundler-compatible tooling.
|
|
43
|
+
- Build: TypeDoc runner has been replaced by `site/scripts/gen-typedoc-api.mjs`.
|
|
11
44
|
|
|
12
45
|
### Deprecated
|
|
13
46
|
|
|
14
|
-
-
|
|
47
|
+
- `ex.Pool` renamed to `ex.ArenaPool`
|
|
15
48
|
|
|
16
49
|
### Added
|
|
17
50
|
|
|
18
|
-
-
|
|
51
|
+
- Added an optional `System.dispose(world, scene)` lifecycle hook, called by the `SystemManager` when a system is removed after having been initialized — use it to release resources the system provisioned in `initialize` (entities it added, observable subscriptions, etc.). The `LightingSystem` uses it to remove its provisioned overlay and unsubscribe its component queries when lighting is disabled at runtime
|
|
52
|
+
- Added multipass **shader pipelines** for composing shader effects that need more than one pass (blur, bloom, glow), built on an explicit source→destination dataflow with no hidden bind state:
|
|
53
|
+
- New `ex.Framebuffer` and `ex.MultisampleFramebuffer` primitives that are both a render destination and a texture source (`framebuffer.texture`, `framebuffer.glFramebuffer`, `framebuffer.texelSize`), with `resize()`, `clear()`, and `dispose()`. These replace the internal (never exported) `RenderTarget`/`RenderSource` classes inside the WebGL context. Reading a `MultisampleFramebuffer.texture` resolves the MSAA samples automatically.
|
|
54
|
+
- New `ex.ShaderPass`: applies a fragment shader to an image, framebuffer, or texture and produces a new image — the building block for custom effects. `pass.draw(source, destination)` for the simple case, or `pass.draw({ sources: { u_smaller: quarterResolution, u_larger: halfResolution }, destination, uniforms })` for multiple named sampler sources and per-draw uniforms. Convention uniforms are provided (`u_image`, `u_resolution`, `u_texelSize`, `u_time_ms`, `u_elapsed_ms`) and fragments are authored with the `glsl` tag's straight-alpha conventions.
|
|
55
|
+
- New `ex.ShaderPipeline` linear chain (`source → pass0 → pass1 → ... → destination`) with per-pass `scale` for downsample/upsample and `u_original` bound for composite passes. Any object implementing `ex.ShaderPipelineLike` (`process(source, destination)`) can be used instead for custom non-linear graphs.
|
|
56
|
+
- `ex.Material` can now run multipass pipelines, with `MaterialOptions` typed as a union so only valid combinations compile:
|
|
57
|
+
- `fragmentSource` only — single-pass custom shading of the graphic, exactly as before
|
|
58
|
+
- `passes` only — run a multipass effect (fragment strings, `ShaderPass`es, or an effect object like `BloomEffect`) on the graphic offscreen; a default passthrough composite draws the result
|
|
59
|
+
- `passes` + `fragmentSource` — the fragment shader becomes the **final composite**: it draws the pipeline's output (bound as `u_graphic`) on screen, which is where screen-space work like `u_screen_texture` belongs
|
|
60
|
+
- `padding` (with `passes`) — extra transparent source pixels around the graphic so blur/glow halos are not clipped to the quad
|
|
61
|
+
- the material's custom `uniforms` and built-ins (`u_opacity`, `u_color`, `u_graphic_resolution`, `u_size`) are forwarded to every pass
|
|
62
|
+
- `ex.PostProcessor` is now built around a single `process(source, destination)` hook (`initialize` is optional, so `ShaderPipelineLike` effect objects can be added with `addPostProcessor` directly); the legacy `getShader`/`getLayout` single-pass path still works but is deprecated for removal in v1. `ex.ShaderPipelinePostProcessor` builds a fullscreen post processor from `passes` (mirroring `Material`: a list of fragment sources/`ShaderPass`es, or a `ShaderPipelineLike` effect), chaining with other post processors in order. `ColorBlindnessPostProcessor` is now implemented on `ShaderPass` internally.
|
|
63
|
+
- New built-in effects usable per-graphic or fullscreen, each a `ShaderPipelineLike` object with live-tunable settings:
|
|
64
|
+
- `ex.BlurEffect({ graphicsContext, scale, strength })` — separable gaussian blur, animate `blur.strength` any time
|
|
65
|
+
- `ex.GlowEffect({ graphicsContext, color, scale, strength, intensity })` — outer glow: the graphic's silhouette is tinted, blurred, and composited back under the original (pair with `Material` `padding` so the halo has room); `color`/`strength`/`intensity` are live properties
|
|
66
|
+
- `ex.BloomEffect({ graphicsContext, threshold, intensity, levels })` — progressive downsample/upsample ladder bloom implemented as a custom pass graph, with live-tunable `threshold`/`intensity`
|
|
67
|
+
- The underlying pass factories `ex.createBlurPasses(...)`/`ex.createGlowPasses(...)` are also exported for splicing into custom pass chains
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
const blur = new ex.BlurEffect({ graphicsContext, strength: 2 });
|
|
71
|
+
actor.graphics.material = new ex.Material({
|
|
72
|
+
graphicsContext,
|
|
73
|
+
passes: blur,
|
|
74
|
+
padding: 16 // blur can bleed 16px outside the sprite without clipping
|
|
75
|
+
});
|
|
76
|
+
blur.strength = 4; // live-tunable any time
|
|
77
|
+
|
|
78
|
+
// fullscreen: effects can be added as post processors directly
|
|
79
|
+
game.graphicsContext.addPostProcessor(new ex.BloomEffect({ graphicsContext, threshold: 0.6 }));
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
- Added an opt-in 2D lighting simulation, enabled with the new `lighting: true` engine option (default `false`). When enabled every scene gets a `FlickerSystem` and `LightingSystem` that render darkness veils, point/cone lights with flicker, and occluder shadows via the new `DarknessComponent`, `PointLightComponent`, `ConeLightComponent`, and `LightOccluderComponent` components. The overlay is rasterized with the 2D Canvas API and re-uploaded to the GPU every frame, which carries a performance penalty — this is why the feature is off by default. The systems can also be added manually to individual scenes with `scene.world.add(new ex.LightingSystem())` without enabling the engine option.
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
const game = new ex.Engine({ lighting: true });
|
|
86
|
+
const lamp = new ex.Actor({ pos: ex.vec(100, 100) });
|
|
87
|
+
lamp.addComponent(new ex.PointLightComponent({ color: ex.Color.fromRGB(255, 200, 80), radius: 200 }));
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Pass a `LightingConfig` object instead of `true` to tune the simulation's defaults — including the ambient brightness floor/color assumed everywhere a scene has no explicit `DarknessComponent` override:
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
const game = new ex.Engine({
|
|
94
|
+
lighting: {
|
|
95
|
+
enabled: true,
|
|
96
|
+
zIndex: 100, // z-index of the lighting overlay
|
|
97
|
+
cullPadding: 64, // world-pixel padding around the camera frustum when culling lights/occluders
|
|
98
|
+
ambientIntensity: 0.1, // ambient brightness floor (0.0 to 1.0)
|
|
99
|
+
ambientColor: ex.Color.fromRGB(60, 60, 200), // tints the darkness veil toward this color
|
|
100
|
+
tintAlphaFactor: 0.35, // fraction of a light's intensity used for its colored tint
|
|
101
|
+
shadowNearOpacity: 0.92, // occluder shadow opacity at the occluder's edge
|
|
102
|
+
shadowMidOpacity: 0.6 // occluder shadow opacity at 40% of the shadow's reach
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Any entity with a collider-like shape can cast a dynamic shadow by adding a `LightOccluderComponent`:
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
const crate = new ex.Actor({ pos: ex.vec(300, 200), width: 40, height: 40 });
|
|
111
|
+
crate.addComponent(new ex.LightOccluderComponent({ shape: { kind: 'box', width: 40, height: 40 } }));
|
|
112
|
+
```
|
|
113
|
+
- Materials are now enumerable for debugging and tooling (like the Excalibur Dev Tools browser extension): every `Material` has a unique `material.id` and public `material.vertexSource`/`material.fragmentSource` getters, and is automatically registered with its context, retrievable via `game.graphicsContext.materials`. The registry holds materials weakly so it does not prevent garbage collection.
|
|
114
|
+
- Added the `ex.glsl` tagged template literal for authoring `Material` fragment shaders. It lights up GLSL syntax highlighting, adds the `#version`/`precision` boilerplate, injects the `pixel_texture()` pixel art filter on demand, and handles alpha premultiplication automatically.
|
|
115
|
+
|
|
116
|
+
Excalibur's pipeline is premultiplied end to end, which makes hand written shaders easy to get subtly wrong in both directions: introducing your own alpha without premultiplying blends too bright, and premultiplying a `texture()` sample that is already premultiplied darkens antialiased edges. Shaders written with the tag instead get a straight (un-premultiplied) alpha authoring space, so ordinary alpha math just works:
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
const material = game.graphicsContext.createMaterial({
|
|
120
|
+
name: 'fade',
|
|
121
|
+
fragmentSource: ex.glsl`
|
|
122
|
+
in vec2 v_uv;
|
|
123
|
+
uniform sampler2D u_graphic;
|
|
124
|
+
out vec4 fragColor;
|
|
125
|
+
|
|
126
|
+
void main() {
|
|
127
|
+
vec4 color = texture(u_graphic, v_uv);
|
|
128
|
+
color.a *= 0.5; // no manual premultiply needed
|
|
129
|
+
fragColor = color;
|
|
130
|
+
}`
|
|
131
|
+
});
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Sample non-color data with `ex_texture_raw(tex, uv)` to bypass the conversion, or add `#pragma excalibur premultiply(off)` to opt a shader out entirely.
|
|
135
|
+
|
|
136
|
+
- Added new lerp modes for color which can be chosen by aptional parameter in `Color.lerp` or by calling different methods:
|
|
137
|
+
```typescript
|
|
138
|
+
Color.lerp(colorA, colorB, t); // 'hsl' by default
|
|
139
|
+
// eqivalent to:
|
|
140
|
+
Color.lerpHSL(colorA, colorB, t);
|
|
141
|
+
|
|
142
|
+
Color.lerp(colorA, colorB, t, 'rgb');
|
|
143
|
+
// eqivalent to:
|
|
144
|
+
Color.lerpRGB(colorA, colorB, t);
|
|
145
|
+
|
|
146
|
+
Color.lerp(colorA, colorB, t, 'lrgb');
|
|
147
|
+
// equivalent to:
|
|
148
|
+
Color.lerpLRGB(colorA, colorB, t);
|
|
149
|
+
```
|
|
150
|
+
- Added `Color.fromFloatArray([0.0, 0.0, 0.0, 1.0])` and `Color.toFloatArray()`
|
|
151
|
+
- Sound objects can be created from `Blob`s:
|
|
152
|
+
```typescript
|
|
153
|
+
const sound = await Sound.fromBlob(instanceOfBlob)
|
|
154
|
+
sound.play()
|
|
155
|
+
```
|
|
156
|
+
- Docs: The API documentation pipeline has been rebuilt around a vendored fork of `docusaurus-plugin-typedoc-api` (added as a git submodule under `site/vendor/docusaurus-plugin-typedoc-api`). The new `site/scripts/gen-typedoc-api.mjs` generates TypeDoc output and an `api-symbol-index.json` consumed by the docs site.
|
|
157
|
+
```bash
|
|
158
|
+
# in site/
|
|
159
|
+
npm run build:docusaurus-plugin-typedoc-api # build the vendored plugin
|
|
160
|
+
npm run api:generate # run typedoc + normalize
|
|
161
|
+
```
|
|
162
|
+
- Docs: New `remark-api-symbol-links` plugin (`site/plugins/remark-api-symbol-links.mjs`) resolves `[[Symbol]]` markdown links to the generated TypeDoc API pages using the symbol index, replacing the external `remark-typedoc-symbol-links` package.
|
|
19
163
|
|
|
20
164
|
### Fixed
|
|
21
165
|
|
|
22
|
-
-
|
|
166
|
+
- Fixed issue where `rotateBy({…})` would not rotate at all for a full-turn offset (`2 * Math.PI` normalized to a zero-length rotation) and would rotate the wrong way for offsets larger than `Math.PI`. When no `rotationType` is provided, `rotateBy` now rotates by exactly the signed offset given, preserving full and multiple turns; when a `rotationType` is provided, the offset determines the target orientation and the type picks the travel path as before. Also fixed an angular velocity spike of ±2π on frames where a multi-turn rotation wrapped past the canonical angle range
|
|
167
|
+
- Fixed issue where a pointer's normalized id could change mid-contact. `PointerEventReceiver` normalized native pointer ids by sorting all active native ids and using the array index, so an already-tracked pointer (e.g. a touch in a multi-touch gesture) was silently re-assigned a different id when another pointer went down or up, routing its subsequent events to the wrong `PointerAbstraction`. Normalized ids are now stable for the lifetime of the contact; the smallest freed id is reused for new contacts (so a lone new touch always lands back on `pointers.primary`); cancelled contacts (`pointercancel`/`touchcancel`) free their id and clear their down state instead of leaking; and the mouse keeps its id reserved after mouse-up since it persists as a hover pointer
|
|
168
|
+
- Fixed issue where a cancelled pointer (`pointercancel`/`touchcancel`) left entities in a phantom hover/drag state. Entities now receive `pointerleave` (and `pointerdragend`/`pointerdragleave` when the cancelled contact was dragging) before `pointercancel`, mirroring the pointer-up flow and the browser's own post-cancel event order, since the browser never sends another move/up event for a cancelled pointer
|
|
169
|
+
- Fixed issue where the post processor `u_time_ms` uniform accumulated elapsed time once per post processor per update, advancing N times too fast with N post processors installed
|
|
170
|
+
- Fixed issue where Local-space particles could be double-returned to the object pool, causing the same Particle instance to be active in two slots simultaneously
|
|
171
|
+
- Fixed issue where window resize events were handled twice when using window-based display modes (FitScreen, FitScreenAndFill, FitScreenAndZoom, FillScreen), causing double resolution/viewport computation and double canvas size writes
|
|
172
|
+
- Fixed Matrix and AffineMatrix scale/rotation decomposition bug where getScaleX/getScaleY used wrong basis components for non-uniform scale combined with rotation, causing swapped scale values and corrupt transforms. Also fixed setRotation and setScaleX/setScaleY to operate on correct column basis vectors.
|
|
173
|
+
- Fixed issue where `Resource.load()` would hang forever on network errors (DNS failure, CORS block, offline), deadlocking the loader and all scene navigation. The promise now rejects with a `ResourceLoadingError` containing the resource path and a descriptive message
|
|
174
|
+
- Fixed issue where `ImageSource.load()` would hang forever below 100% with nothing logged when a response could not be decoded as an image, for example a corrupt image, or a `200 OK` that returned HTML/error content with a content type other than `text/html`. The `HTMLImageElement.onerror` is now handled so `ImageSource.load()` and `ImageSource.ready` reject with an error that is also logged to the console, which lets the `Loader` fail fast instead of deadlocking. `ImageSource.fromHtmlCanvasElement()` no longer hangs when a canvas cannot be turned into a blob, and blob object urls from failed decodes are now released
|
|
175
|
+
- Fixed issue where `Gif.isLoaded()` always returned `true` because it checked `!!this.data` on an empty array, causing Gifs to be silently skipped by the loader and never parsed
|
|
176
|
+
- Fixed issue where `scaleTo({…})` and `scaleBy({…})` actions would cause entities to keep scaling indefinitely after the action completed, due to a copy-paste bug that zeroed `angularVelocity` instead of `scaleFactor`
|
|
177
|
+
- Fixed issue where `scaleTo({…})` and `scaleBy({…})` actions used a live reference to the entity's scale vector as the interpolation start point, causing the easing curve to be corrupted if the entity's scale changed during the action
|
|
178
|
+
- Fixed issue where the first action in a sequence would not execute after calling `clearActions()` mid-execution. All action types now properly reset their initialization state when stopped, resolving issue #3468
|
|
179
|
+
- Performance: Font/Text now use smaller texture sizes, improving performance on Safari especially when rendering text
|
|
180
|
+
- Fixed `Color.screen()` blend mode bug where both operands were incorrectly using the parameter color instead of `this` and the parameter
|
|
181
|
+
- Fixed `Color.toRGBA()` logic error in alpha check condition (`||` changed to `&&`)
|
|
182
|
+
- Fixed `Color.toHSLA()` to output valid CSS format with degrees for hue and percentages for saturation/lightness
|
|
183
|
+
- Fixed `Color.toHex()` to properly clamp RGB values to 0-255 range
|
|
184
|
+
- Docs: Fixed broken internal links, anchors, and `[[Symbol]]` references across the docs and blog (e.g. `#sprites` → `/docs/sprites`, `#ExcaliburGraphicsContext` → `/docs/graphics-context`), and replaced invalid `[[Actor.update]]` symbol links with plain `Actor.update` references where the member is not part of the public API surface
|
|
185
|
+
- Docs: Fixed incorrect JSDoc `@param`/`@returns` tags and removed dead commented-out code blocks in engine source (e.g. `CollisionSolver`, `BoundingBox.draw`) that produced invalid TypeDoc output
|
|
186
|
+
- Fixed `BoundingBox.intersect()` return type to be explicitly `Vector | null` (callers already null-checked, but the type was not reflected)
|
|
23
187
|
|
|
24
188
|
### Updates
|
|
25
189
|
|
|
26
|
-
-
|
|
190
|
+
- Deps: Upgraded to TypeScript 6.0.3 (from 5.6.3) and typescript-eslint 8.63.0 (from 8.38.0); engine source updated for TS6 strictness (non-null assertions, `null` → `undefined` defaults, optional fields)
|
|
191
|
+
- Deps: Upgraded to Docusaurus 3.10.1 (from 3.5.2) across the docs site, including `@docusaurus/*` packages, theme/preset packages, and the mdx-loader
|
|
192
|
+
- Deps: Upgraded to TypeDoc 0.28.19 (vendored plugin) and removed the top-level `typedoc` devDependency / `overrides`
|
|
193
|
+
- Deps: Upgraded Vitest 4.1.8 → 4.1.10 and Vite 8.0.16 → 8.1.4; browser API is now enabled with `allowWrite`/`allowExec` in the unit config, and the Vitest API host was changed from `0.0.0.0` to `127.0.0.1`
|
|
194
|
+
- Deps: Upgraded `coveralls-next` 6.0.1 → 6.0.2
|
|
195
|
+
- Deps: Removed unused `@types/marked` devDependency and `wallaby.js` test runner config
|
|
196
|
+
- CI: API doc generation now runs as part of `npm run all:ci` (via `npm run apidocs` → `site/scripts/gen-typedoc-api.mjs`); the dedicated `typedoc` CI job in the build workflow has been removed
|
|
197
|
+
- CI: The `eslint` config dropped the obsolete `parserOptions.project` overrides now that typescript-eslint handles project context differently
|
|
27
198
|
|
|
28
199
|
### Changed
|
|
29
200
|
|
|
30
|
-
-
|
|
201
|
+
- API documentation are now generated into the Docusaurus build directory (`site/generated/`, gitignored) and copied into `.docusaurus/generated/` during `site` build, instead of the legacy `docs/api/` output location
|
|
31
202
|
|
|
32
203
|
<!--------------------------------- DO NOT EDIT BELOW THIS LINE --------------------------------->
|
|
33
204
|
<!--------------------------------- DO NOT EDIT BELOW THIS LINE --------------------------------->
|
|
@@ -1308,11 +1479,18 @@ const hits = engine.currentScene.physics.rayCast(
|
|
|
1308
1479
|
|
|
1309
1480
|
### Updates
|
|
1310
1481
|
|
|
1311
|
-
-
|
|
1482
|
+
- Deps: Upgraded to TypeScript 6.0.3 (from 5.6.3) and typescript-eslint 8.63.0 (from 8.38.0); engine source updated for TS6 strictness (non-null assertions, `null` → `undefined` defaults, optional fields)
|
|
1483
|
+
- Deps: Upgraded to Docusaurus 3.10.1 (from 3.5.2) across the docs site, including `@docusaurus/*` packages, theme/preset packages, and the mdx-loader
|
|
1484
|
+
- Deps: Upgraded to TypeDoc 0.28.19 (vendored plugin) and removed the top-level `typedoc` devDependency / `overrides`
|
|
1485
|
+
- Deps: Upgraded Vitest 4.1.8 → 4.1.10 and Vite 8.0.16 → 8.1.4; browser API is now enabled with `allowWrite`/`allowExec` in the unit config, and the Vitest API host was changed from `0.0.0.0` to `127.0.0.1`
|
|
1486
|
+
- Deps: Upgraded `coveralls-next` 6.0.1 → 6.0.2
|
|
1487
|
+
- Deps: Removed unused `@types/marked` devDependency and `wallaby.js` test runner config
|
|
1488
|
+
- CI: API doc generation now runs as part of `npm run all:ci` (via `npm run apidocs` → `site/scripts/gen-typedoc-api.mjs`); the dedicated `typedoc` CI job in the build workflow has been removed
|
|
1489
|
+
- CI: The `eslint` config dropped the obsolete `parserOptions.project` overrides now that typescript-eslint handles project context differently
|
|
1312
1490
|
|
|
1313
1491
|
### Changed
|
|
1314
1492
|
|
|
1315
|
-
-
|
|
1493
|
+
- API documentation are now generated into the Docusaurus build directory (`site/generated/`, gitignored) and copied into `.docusaurus/generated/` during `site` build, instead of the legacy `docs/api/` output location
|
|
1316
1494
|
|
|
1317
1495
|
## [v0.28.2]
|
|
1318
1496
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { Entity } from '../../entity-component-system/entity';
|
|
2
2
|
import type { Easing } from '../../math';
|
|
3
3
|
import { Vector } from '../../math/vector';
|
|
4
|
-
import type { EasingFunction } from '../../util/easing-functions';
|
|
5
4
|
import type { Action } from '../action';
|
|
6
5
|
export interface MoveByOptions {
|
|
7
6
|
offset: Vector;
|
|
8
7
|
duration: number;
|
|
9
|
-
easing?: Easing
|
|
8
|
+
easing?: Easing;
|
|
10
9
|
}
|
|
11
10
|
/**
|
|
12
11
|
*
|
|
@@ -24,9 +23,7 @@ export declare class MoveByWithOptions implements Action {
|
|
|
24
23
|
private _stopped;
|
|
25
24
|
private _motion;
|
|
26
25
|
private _offset;
|
|
27
|
-
private _legacyEasing;
|
|
28
26
|
private _easing;
|
|
29
|
-
private _useLegacyEasing;
|
|
30
27
|
constructor(entity: Entity, options: MoveByOptions);
|
|
31
28
|
update(elapsed: number): void;
|
|
32
29
|
isComplete(entity: Entity): boolean;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { Entity } from '../../entity-component-system/entity';
|
|
2
2
|
import type { Easing } from '../../math';
|
|
3
3
|
import { Vector } from '../../math/vector';
|
|
4
|
-
import type { EasingFunction } from '../../util/easing-functions';
|
|
5
4
|
import type { Action } from '../action';
|
|
6
5
|
export interface MoveToOptions {
|
|
7
6
|
pos: Vector;
|
|
8
7
|
duration: number;
|
|
9
|
-
easing?: Easing
|
|
8
|
+
easing?: Easing;
|
|
10
9
|
}
|
|
11
10
|
/**
|
|
12
11
|
*
|
|
@@ -24,8 +23,6 @@ export declare class MoveToWithOptions implements Action {
|
|
|
24
23
|
private _stopped;
|
|
25
24
|
private _motion;
|
|
26
25
|
private _easing;
|
|
27
|
-
private _legacyEasing;
|
|
28
|
-
private _useLegacyEasing;
|
|
29
26
|
constructor(entity: Entity, options: MoveToOptions);
|
|
30
27
|
update(elapsed: number): void;
|
|
31
28
|
isComplete(entity: Entity): boolean;
|
|
@@ -11,7 +11,12 @@ export interface RotateByOptions {
|
|
|
11
11
|
*/
|
|
12
12
|
duration: number;
|
|
13
13
|
/**
|
|
14
|
-
* Optionally provide type of rotation
|
|
14
|
+
* Optionally provide type of rotation. When omitted the entity rotates by exactly the
|
|
15
|
+
* signed offset provided, preserving full turns (an offset of 2 PI performs a full revolution).
|
|
16
|
+
* When provided, the offset determines the target orientation and the rotation type picks
|
|
17
|
+
* the travel path to it. Non-zero full-turn multiples of 2 PI travel one full revolution in
|
|
18
|
+
* the requested direction for Clockwise, CounterClockwise, and LongestPath, while
|
|
19
|
+
* ShortestPath will not move.
|
|
15
20
|
*/
|
|
16
21
|
rotationType?: RotationType;
|
|
17
22
|
}
|
|
@@ -30,8 +35,9 @@ export declare class RotateByWithOptions implements Action {
|
|
|
30
35
|
private _motion;
|
|
31
36
|
private _offset;
|
|
32
37
|
private _startAngle;
|
|
33
|
-
private _rotationType
|
|
34
|
-
private
|
|
38
|
+
private _rotationType?;
|
|
39
|
+
private _travel;
|
|
40
|
+
private _currentAngle;
|
|
35
41
|
constructor(entity: Entity, options: RotateByOptions);
|
|
36
42
|
update(elapsed: number): void;
|
|
37
43
|
isComplete(): boolean;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { EasingFunction } from '../util/easing-functions';
|
|
2
1
|
import { ActionQueue } from './action-queue';
|
|
3
2
|
import type { MoveByOptions } from './action/move-by';
|
|
4
3
|
import type { MoveToOptions } from './action/move-to';
|
|
@@ -42,48 +41,9 @@ export declare class ActionContext {
|
|
|
42
41
|
* @param options
|
|
43
42
|
*/
|
|
44
43
|
curveTo(options: CurveToOptions): ActionContext;
|
|
45
|
-
/**
|
|
46
|
-
* This method will move an actor to the specified `x` and `y` position over the
|
|
47
|
-
* specified duration using a given {@apilink EasingFunctions} and return back the actor. This
|
|
48
|
-
* method is part of the actor 'Action' fluent API allowing action chaining.
|
|
49
|
-
* @param pos The x,y vector location to move the actor to
|
|
50
|
-
* @param duration The time it should take the actor to move to the new location in milliseconds
|
|
51
|
-
* @param easingFcn Use {@apilink EasingFunction} or a custom function to use to calculate position, Default is {@apilink EasingFunctions.Linear}
|
|
52
|
-
* @deprecated use new moveTo({pos: Vector, duration: number, easing: EasingFunction})
|
|
53
|
-
*/
|
|
54
|
-
easeTo(pos: Vector, duration: number, easingFcn?: EasingFunction): ActionContext;
|
|
55
|
-
/**
|
|
56
|
-
* This method will move an actor to the specified `x` and `y` position over the
|
|
57
|
-
* specified duration using a given {@apilink EasingFunctions} and return back the actor. This
|
|
58
|
-
* method is part of the actor 'Action' fluent API allowing action chaining.
|
|
59
|
-
* @param x The x location to move the actor to
|
|
60
|
-
* @param y The y location to move the actor to
|
|
61
|
-
* @param duration The time it should take the actor to move to the new location in milliseconds
|
|
62
|
-
* @param easingFcn Use {@apilink EasingFunction} or a custom function to use to calculate position, Default is {@apilink EasingFunctions.Linear}
|
|
63
|
-
* @deprecated use new moveTo({pos: Vector, duration: number, easing: EasingFunction})
|
|
64
|
-
*/
|
|
65
|
-
easeTo(x: number, y: number, duration: number, easingFcn?: EasingFunction): ActionContext;
|
|
66
|
-
/**
|
|
67
|
-
* This method will move an actor by a specified vector offset relative to the current position given
|
|
68
|
-
* a duration and a {@apilink EasingFunction}. This method is part of the actor 'Action' fluent API allowing action chaining.
|
|
69
|
-
* @param offset Vector offset relative to the current position
|
|
70
|
-
* @param duration The duration in milliseconds
|
|
71
|
-
* @param easingFcn Use {@apilink EasingFunction} or a custom function to use to calculate position, Default is {@apilink EasingFunctions.Linear}
|
|
72
|
-
* @deprecated use new moveBy({offset: Vector, duration: number, easing: EasingFunction})
|
|
73
|
-
*/
|
|
74
|
-
easeBy(offset: Vector, duration: number, easingFcn?: EasingFunction): ActionContext;
|
|
75
|
-
/**
|
|
76
|
-
* This method will move an actor by a specified x and y offset relative to the current position given
|
|
77
|
-
* a duration and a {@apilink EasingFunction}. This method is part of the actor 'Action' fluent API allowing action chaining.
|
|
78
|
-
* @param offset Vector offset relative to the current position
|
|
79
|
-
* @param duration The duration in milliseconds
|
|
80
|
-
* @param easingFcn Use {@apilink EasingFunction} or a custom function to use to calculate position, Default is {@apilink EasingFunctions.Linear}
|
|
81
|
-
* @deprecated use new moveBy({offset: Vector, duration: number, easing: EasingFunction})
|
|
82
|
-
*/
|
|
83
|
-
easeBy(offsetX: number, offsetY: number, duration: number, easingFcn?: EasingFunction): ActionContext;
|
|
84
44
|
/**
|
|
85
45
|
* Moves an actor to a specified {@link Vector} in a given duration in milliseconds.
|
|
86
|
-
* You may optionally specify an {@link
|
|
46
|
+
* You may optionally specify an {@link Easing}
|
|
87
47
|
* @param options
|
|
88
48
|
*/
|
|
89
49
|
moveTo(options: MoveToOptions): ActionContext;
|
|
@@ -106,10 +66,17 @@ export declare class ActionContext {
|
|
|
106
66
|
moveTo(x: number, y: number, speed: number): ActionContext;
|
|
107
67
|
/**
|
|
108
68
|
* Moves an actor by a specified offset {@link Vector} in a given duration in milliseconds.
|
|
109
|
-
* You may optionally specify an {@link
|
|
69
|
+
* You may optionally specify an {@link Easing}
|
|
110
70
|
* @param options
|
|
111
71
|
*/
|
|
112
72
|
moveBy(options: MoveByOptions): ActionContext;
|
|
73
|
+
/**
|
|
74
|
+
* This method will move an actor by the specified x offset and y offset from its current position, at a certain speed.
|
|
75
|
+
* This method is part of the actor 'Action' fluent API allowing action chaining.
|
|
76
|
+
* @param offset The Vector offset to apply to this actor
|
|
77
|
+
* @param speed The speed in pixels per second the actor should move
|
|
78
|
+
*/
|
|
79
|
+
moveBy(offset: Vector, speed: number): ActionContext;
|
|
113
80
|
/**
|
|
114
81
|
* This method will move an actor by the specified x offset and y offset from its current position, at a certain speed.
|
|
115
82
|
* This method is part of the actor 'Action' fluent API allowing action chaining.
|
|
@@ -117,7 +84,6 @@ export declare class ActionContext {
|
|
|
117
84
|
* @param yOffset The y location to move the actor to
|
|
118
85
|
* @param speed The speed in pixels per second the actor should move
|
|
119
86
|
*/
|
|
120
|
-
moveBy(offset: Vector, speed: number): ActionContext;
|
|
121
87
|
moveBy(xOffset: number, yOffset: number, speed: number): ActionContext;
|
|
122
88
|
/**
|
|
123
89
|
* Rotates an actor to a specified angle over a duration in milliseconds,
|
|
@@ -5,7 +5,6 @@ import type { Actor } from '../actor';
|
|
|
5
5
|
import { MotionComponent } from '../entity-component-system/components/motion-component';
|
|
6
6
|
import { TransformComponent } from '../entity-component-system/components/transform-component';
|
|
7
7
|
import type { Vector, RotationType } from '../math';
|
|
8
|
-
import type { EasingFunction } from '../util/easing-functions';
|
|
9
8
|
import type { ActionQueue } from './action-queue';
|
|
10
9
|
import type { Action } from './action';
|
|
11
10
|
import type { Color } from '../color';
|
|
@@ -16,6 +15,7 @@ import type { MoveByOptions, RotateByOptions, RotateToOptions, ScaleByOptions, S
|
|
|
16
15
|
export interface ActionContextMethods extends Pick<ActionContext, keyof ActionContext> {
|
|
17
16
|
}
|
|
18
17
|
export declare class ActionsComponent extends Component implements ActionContextMethods {
|
|
18
|
+
private static _NAME;
|
|
19
19
|
dependencies: (typeof TransformComponent | typeof MotionComponent)[];
|
|
20
20
|
private _ctx;
|
|
21
21
|
onAdd(entity: Entity): void;
|
|
@@ -52,47 +52,9 @@ export declare class ActionsComponent extends Component implements ActionContext
|
|
|
52
52
|
* @param options
|
|
53
53
|
*/
|
|
54
54
|
curveTo(options: CurveToOptions): ActionContext;
|
|
55
|
-
/**
|
|
56
|
-
* This method will move an actor to the specified `x` and `y` position over the
|
|
57
|
-
* specified duration using a given {@apilink EasingFunctions} and return back the actor. This
|
|
58
|
-
* method is part of the actor 'Action' fluent API allowing action chaining.
|
|
59
|
-
* @param pos The x,y vector location to move the actor to
|
|
60
|
-
* @param duration The time it should take the actor to move to the new location in milliseconds
|
|
61
|
-
* @param easingFcn Use {@apilink EasingFunctions} or a custom function to use to calculate position, Default is {@apilink EasingFunctions.Linear}
|
|
62
|
-
* @deprecated use new moveTo({pos: Vector, duration: number, easing: EasingFunction})
|
|
63
|
-
*/
|
|
64
|
-
easeTo(pos: Vector, duration: number, easingFcn?: EasingFunction): ActionContext;
|
|
65
|
-
/**
|
|
66
|
-
* This method will move an actor to the specified `x` and `y` position over the
|
|
67
|
-
* specified duration using a given {@apilink EasingFunctions} and return back the actor. This
|
|
68
|
-
* method is part of the actor 'Action' fluent API allowing action chaining.
|
|
69
|
-
* @param x The x location to move the actor to
|
|
70
|
-
* @param y The y location to move the actor to
|
|
71
|
-
* @param duration The time it should take the actor to move to the new location in milliseconds
|
|
72
|
-
* @param easingFcn Use {@apilink EasingFunctions} or a custom function to use to calculate position, Default is {@apilink EasingFunctions.Linear}
|
|
73
|
-
* @deprecated use new moveTo({pos: Vector, duration: number, easing: EasingFunction})
|
|
74
|
-
*/
|
|
75
|
-
easeTo(x: number, y: number, duration: number, easingFcn?: EasingFunction): ActionContext;
|
|
76
|
-
/**
|
|
77
|
-
*
|
|
78
|
-
* @param offset
|
|
79
|
-
* @param duration
|
|
80
|
-
* @param easingFcn
|
|
81
|
-
* @deprecated use new moveBy({pos: Vector, duration: number, easing: EasingFunction})
|
|
82
|
-
*/
|
|
83
|
-
easeBy(offset: Vector, duration: number, easingFcn?: EasingFunction): ActionContext;
|
|
84
|
-
/**
|
|
85
|
-
*
|
|
86
|
-
* @param offsetX
|
|
87
|
-
* @param offsetY
|
|
88
|
-
* @param duration
|
|
89
|
-
* @param easingFcn
|
|
90
|
-
* @deprecated use new moveBy({pos: Vector, duration: number, easing: EasingFunction})
|
|
91
|
-
*/
|
|
92
|
-
easeBy(offsetX: number, offsetY: number, duration: number, easingFcn?: EasingFunction): ActionContext;
|
|
93
55
|
/**
|
|
94
56
|
* Moves an actor to a specified {@link Vector} in a given duration in milliseconds.
|
|
95
|
-
* You may optionally specify an {@link
|
|
57
|
+
* You may optionally specify an {@link Easing}
|
|
96
58
|
* @param options
|
|
97
59
|
*/
|
|
98
60
|
moveTo(options: MoveToOptions): ActionContext;
|
|
@@ -115,7 +77,7 @@ export declare class ActionsComponent extends Component implements ActionContext
|
|
|
115
77
|
moveTo(x: number, y: number, speed: number): ActionContext;
|
|
116
78
|
/**
|
|
117
79
|
* Moves an actor by a specified offset {@link Vector} in a given duration in milliseconds.
|
|
118
|
-
* You may optionally specify an {@link
|
|
80
|
+
* You may optionally specify an {@link Easing}
|
|
119
81
|
* @param options
|
|
120
82
|
*/
|
|
121
83
|
moveBy(options: MoveByOptions): ActionContext;
|
|
@@ -8,8 +8,6 @@ export * from './action/repeat';
|
|
|
8
8
|
export * from './action/repeat-forever';
|
|
9
9
|
export * from './action/blink';
|
|
10
10
|
export * from './action/die';
|
|
11
|
-
export * from './action/ease-to';
|
|
12
|
-
export * from './action/ease-by';
|
|
13
11
|
export * from './action/fade';
|
|
14
12
|
export * from './action/follow';
|
|
15
13
|
export * from './action/meet';
|