@thunderclap-engine/engine 0.0.0-stage → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +390 -0
- package/LICENSE +21 -0
- package/README.md +333 -2
- package/dist/analytics/analytics.d.ts +80 -0
- package/dist/analytics/analytics.js +129 -0
- package/dist/analytics/index.d.ts +1 -0
- package/dist/analytics/index.js +1 -0
- package/dist/anim/aim.d.ts +43 -0
- package/dist/anim/aim.js +157 -0
- package/dist/anim/clip.d.ts +98 -0
- package/dist/anim/clip.js +282 -0
- package/dist/anim/compress.d.ts +65 -0
- package/dist/anim/compress.js +339 -0
- package/dist/anim/foot-ik.d.ts +74 -0
- package/dist/anim/foot-ik.js +241 -0
- package/dist/anim/graph.d.ts +153 -0
- package/dist/anim/graph.js +532 -0
- package/dist/anim/ik.d.ts +105 -0
- package/dist/anim/ik.js +435 -0
- package/dist/anim/index.d.ts +36 -0
- package/dist/anim/index.js +21 -0
- package/dist/anim/match.d.ts +66 -0
- package/dist/anim/match.js +153 -0
- package/dist/anim/mixer.d.ts +113 -0
- package/dist/anim/mixer.js +314 -0
- package/dist/anim/morph.d.ts +41 -0
- package/dist/anim/morph.js +94 -0
- package/dist/anim/pose.d.ts +74 -0
- package/dist/anim/pose.js +254 -0
- package/dist/anim/quat.d.ts +44 -0
- package/dist/anim/quat.js +187 -0
- package/dist/anim/retarget.d.ts +97 -0
- package/dist/anim/retarget.js +366 -0
- package/dist/anim/root-motion.d.ts +44 -0
- package/dist/anim/root-motion.js +224 -0
- package/dist/anim/skin-pose.d.ts +39 -0
- package/dist/anim/skin-pose.js +53 -0
- package/dist/anim/socket.d.ts +47 -0
- package/dist/anim/socket.js +84 -0
- package/dist/anim/spring-chain.d.ts +73 -0
- package/dist/anim/spring-chain.js +294 -0
- package/dist/assets/atlas.d.ts +90 -0
- package/dist/assets/atlas.js +212 -0
- package/dist/assets/baked.d.ts +33 -0
- package/dist/assets/baked.js +38 -0
- package/dist/assets/bundle.d.ts +88 -0
- package/dist/assets/bundle.js +464 -0
- package/dist/assets/cache.d.ts +56 -0
- package/dist/assets/cache.js +123 -0
- package/dist/assets/gltf-load.d.ts +252 -0
- package/dist/assets/gltf-load.js +661 -0
- package/dist/assets/gltf-skin.d.ts +36 -0
- package/dist/assets/gltf-skin.js +109 -0
- package/dist/assets/gltf.d.ts +706 -0
- package/dist/assets/gltf.js +1376 -0
- package/dist/assets/index.d.ts +20 -0
- package/dist/assets/index.js +10 -0
- package/dist/assets/ktx2.d.ts +71 -0
- package/dist/assets/ktx2.js +213 -0
- package/dist/assets/manifest.d.ts +79 -0
- package/dist/assets/manifest.js +7 -0
- package/dist/assets/meshopt.d.ts +23 -0
- package/dist/assets/meshopt.js +403 -0
- package/dist/audio/audio.d.ts +733 -0
- package/dist/audio/audio.js +2013 -0
- package/dist/audio/dsp.d.ts +61 -0
- package/dist/audio/dsp.js +159 -0
- package/dist/audio/duck.d.ts +44 -0
- package/dist/audio/duck.js +101 -0
- package/dist/audio/envelope.d.ts +53 -0
- package/dist/audio/envelope.js +106 -0
- package/dist/audio/index.d.ts +13 -0
- package/dist/audio/index.js +14 -0
- package/dist/audio/music.d.ts +113 -0
- package/dist/audio/music.js +548 -0
- package/dist/audio/occlusion.d.ts +55 -0
- package/dist/audio/occlusion.js +61 -0
- package/dist/audio/persist.d.ts +23 -0
- package/dist/audio/persist.js +27 -0
- package/dist/audio/recipes.d.ts +55 -0
- package/dist/audio/recipes.js +227 -0
- package/dist/audio/send.d.ts +41 -0
- package/dist/audio/send.js +118 -0
- package/dist/audio/sprites.d.ts +59 -0
- package/dist/audio/sprites.js +43 -0
- package/dist/audio/synth.d.ts +103 -0
- package/dist/audio/synth.js +197 -0
- package/dist/audio/variations.d.ts +25 -0
- package/dist/audio/variations.js +55 -0
- package/dist/audio/zones.d.ts +100 -0
- package/dist/audio/zones.js +167 -0
- package/dist/core/detached-surface.d.ts +44 -0
- package/dist/core/detached-surface.js +104 -0
- package/dist/core/events.d.ts +24 -0
- package/dist/core/events.js +43 -0
- package/dist/core/game.d.ts +409 -0
- package/dist/core/game.js +530 -0
- package/dist/core/hash.d.ts +24 -0
- package/dist/core/hash.js +49 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.js +9 -0
- package/dist/core/loop.d.ts +113 -0
- package/dist/core/loop.js +185 -0
- package/dist/core/math.d.ts +58 -0
- package/dist/core/math.js +210 -0
- package/dist/core/noise.d.ts +40 -0
- package/dist/core/noise.js +247 -0
- package/dist/core/pool.d.ts +42 -0
- package/dist/core/pool.js +85 -0
- package/dist/core/random.d.ts +61 -0
- package/dist/core/random.js +199 -0
- package/dist/core/scene.d.ts +79 -0
- package/dist/core/scene.js +195 -0
- package/dist/core/timer.d.ts +66 -0
- package/dist/core/timer.js +286 -0
- package/dist/fx/billboard-wgsl.d.ts +29 -0
- package/dist/fx/billboard-wgsl.js +158 -0
- package/dist/fx/billboard.d.ts +249 -0
- package/dist/fx/billboard.js +702 -0
- package/dist/fx/debug-draw.d.ts +127 -0
- package/dist/fx/debug-draw.js +523 -0
- package/dist/fx/debug-wgsl.d.ts +7 -0
- package/dist/fx/debug-wgsl.js +32 -0
- package/dist/fx/decals-wgsl.d.ts +15 -0
- package/dist/fx/decals-wgsl.js +173 -0
- package/dist/fx/decals.d.ts +216 -0
- package/dist/fx/decals.js +607 -0
- package/dist/fx/effect.d.ts +129 -0
- package/dist/fx/effect.js +349 -0
- package/dist/fx/effects/hit-spark.json +48 -0
- package/dist/fx/effects/index.d.ts +8 -0
- package/dist/fx/effects/index.js +9 -0
- package/dist/fx/effects/magic-aura.json +47 -0
- package/dist/fx/effects/smoke-puff.json +34 -0
- package/dist/fx/emit-surface.d.ts +40 -0
- package/dist/fx/emit-surface.js +124 -0
- package/dist/fx/flicker.d.ts +30 -0
- package/dist/fx/flicker.js +42 -0
- package/dist/fx/index.d.ts +31 -0
- package/dist/fx/index.js +20 -0
- package/dist/fx/particles-wgsl.d.ts +57 -0
- package/dist/fx/particles-wgsl.js +828 -0
- package/dist/fx/particles.d.ts +566 -0
- package/dist/fx/particles.js +1533 -0
- package/dist/fx/random.d.ts +15 -0
- package/dist/fx/random.js +20 -0
- package/dist/fx/sky-wgsl.d.ts +23 -0
- package/dist/fx/sky-wgsl.js +127 -0
- package/dist/fx/sky.d.ts +96 -0
- package/dist/fx/sky.js +175 -0
- package/dist/fx/text-atlas.d.ts +143 -0
- package/dist/fx/text-atlas.js +327 -0
- package/dist/fx/trail-wgsl.d.ts +11 -0
- package/dist/fx/trail-wgsl.js +42 -0
- package/dist/fx/trail.d.ts +194 -0
- package/dist/fx/trail.js +555 -0
- package/dist/fx/water-wgsl.d.ts +34 -0
- package/dist/fx/water-wgsl.js +197 -0
- package/dist/fx/water.d.ts +176 -0
- package/dist/fx/water.js +371 -0
- package/dist/geom/collide/bvh.d.ts +151 -0
- package/dist/geom/collide/bvh.js +493 -0
- package/dist/geom/collide/debug.d.ts +14 -0
- package/dist/geom/collide/debug.js +74 -0
- package/dist/geom/collide/grid.d.ts +26 -0
- package/dist/geom/collide/grid.js +91 -0
- package/dist/geom/collide/index.d.ts +8 -0
- package/dist/geom/collide/index.js +8 -0
- package/dist/geom/collide/queries.d.ts +70 -0
- package/dist/geom/collide/queries.js +583 -0
- package/dist/geom/collide/serialize.d.ts +14 -0
- package/dist/geom/collide/serialize.js +145 -0
- package/dist/geom/collide/shapes.d.ts +161 -0
- package/dist/geom/collide/shapes.js +686 -0
- package/dist/geom/collide/slide.d.ts +66 -0
- package/dist/geom/collide/slide.js +375 -0
- package/dist/geom/collide/tile-slide.d.ts +88 -0
- package/dist/geom/collide/tile-slide.js +255 -0
- package/dist/geom/geometry.d.ts +95 -0
- package/dist/geom/geometry.js +322 -0
- package/dist/geom/heightfield.d.ts +72 -0
- package/dist/geom/heightfield.js +295 -0
- package/dist/geom/hull.d.ts +27 -0
- package/dist/geom/hull.js +279 -0
- package/dist/geom/index.d.ts +35 -0
- package/dist/geom/index.js +23 -0
- package/dist/geom/iso.d.ts +74 -0
- package/dist/geom/iso.js +89 -0
- package/dist/geom/lod.d.ts +29 -0
- package/dist/geom/lod.js +27 -0
- package/dist/geom/ops.d.ts +47 -0
- package/dist/geom/ops.js +285 -0
- package/dist/geom/primitives.d.ts +97 -0
- package/dist/geom/primitives.js +359 -0
- package/dist/geom/shapes.d.ts +43 -0
- package/dist/geom/shapes.js +88 -0
- package/dist/geom/simplify.d.ts +38 -0
- package/dist/geom/simplify.js +519 -0
- package/dist/geom/split.d.ts +37 -0
- package/dist/geom/split.js +413 -0
- package/dist/geom/sweep.d.ts +83 -0
- package/dist/geom/sweep.js +534 -0
- package/dist/geom/tangents.d.ts +16 -0
- package/dist/geom/tangents.js +124 -0
- package/dist/geom/triangulate.d.ts +19 -0
- package/dist/geom/triangulate.js +147 -0
- package/dist/host/default.d.ts +10 -0
- package/dist/host/default.js +10 -0
- package/dist/host/index.d.ts +4 -0
- package/dist/host/index.js +3 -0
- package/dist/host/types.d.ts +144 -0
- package/dist/host/types.js +1 -0
- package/dist/host/web-links.d.ts +38 -0
- package/dist/host/web-links.js +110 -0
- package/dist/host/web.d.ts +30 -0
- package/dist/host/web.js +216 -0
- package/dist/host/xr.d.ts +24 -0
- package/dist/host/xr.js +59 -0
- package/dist/i18n/i18n.d.ts +59 -0
- package/dist/i18n/i18n.js +241 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.js +3 -0
- package/dist/i18n/message.d.ts +72 -0
- package/dist/i18n/message.js +369 -0
- package/dist/i18n/negotiate.d.ts +17 -0
- package/dist/i18n/negotiate.js +58 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +1 -0
- package/dist/input/bindings.d.ts +31 -0
- package/dist/input/bindings.js +141 -0
- package/dist/input/clock.d.ts +44 -0
- package/dist/input/clock.js +49 -0
- package/dist/input/follow.d.ts +133 -0
- package/dist/input/follow.js +218 -0
- package/dist/input/gestures.d.ts +281 -0
- package/dist/input/gestures.js +662 -0
- package/dist/input/glyphs.d.ts +35 -0
- package/dist/input/glyphs.js +216 -0
- package/dist/input/gyro.d.ts +85 -0
- package/dist/input/gyro.js +140 -0
- package/dist/input/index.d.ts +19 -0
- package/dist/input/index.js +16 -0
- package/dist/input/input.d.ts +543 -0
- package/dist/input/input.js +1492 -0
- package/dist/input/look.d.ts +327 -0
- package/dist/input/look.js +681 -0
- package/dist/input/magnify.d.ts +177 -0
- package/dist/input/magnify.js +131 -0
- package/dist/input/pointer-dispatch.d.ts +138 -0
- package/dist/input/pointer-dispatch.js +180 -0
- package/dist/input/pointer-router.d.ts +204 -0
- package/dist/input/pointer-router.js +533 -0
- package/dist/input/pointer-sources.d.ts +164 -0
- package/dist/input/pointer-sources.js +306 -0
- package/dist/input/rays.d.ts +138 -0
- package/dist/input/rays.js +615 -0
- package/dist/input/record.d.ts +209 -0
- package/dist/input/record.js +601 -0
- package/dist/input/touch-zones.d.ts +147 -0
- package/dist/input/touch-zones.js +300 -0
- package/dist/input/types.d.ts +158 -0
- package/dist/input/types.js +1 -0
- package/dist/input/xr-source.d.ts +53 -0
- package/dist/input/xr-source.js +164 -0
- package/dist/nav/astar.d.ts +45 -0
- package/dist/nav/astar.js +182 -0
- package/dist/nav/corridor.d.ts +40 -0
- package/dist/nav/corridor.js +95 -0
- package/dist/nav/crowd.d.ts +94 -0
- package/dist/nav/crowd.js +624 -0
- package/dist/nav/flow.d.ts +61 -0
- package/dist/nav/flow.js +193 -0
- package/dist/nav/grid.d.ts +108 -0
- package/dist/nav/grid.js +210 -0
- package/dist/nav/heap.d.ts +22 -0
- package/dist/nav/heap.js +92 -0
- package/dist/nav/index.d.ts +37 -0
- package/dist/nav/index.js +19 -0
- package/dist/nav/mesh/areas.d.ts +44 -0
- package/dist/nav/mesh/areas.js +98 -0
- package/dist/nav/mesh/bake-options.d.ts +33 -0
- package/dist/nav/mesh/bake-options.js +76 -0
- package/dist/nav/mesh/contour.d.ts +22 -0
- package/dist/nav/mesh/contour.js +323 -0
- package/dist/nav/mesh/flow3.d.ts +35 -0
- package/dist/nav/mesh/flow3.js +229 -0
- package/dist/nav/mesh/links.d.ts +38 -0
- package/dist/nav/mesh/links.js +72 -0
- package/dist/nav/mesh/mesh-path.d.ts +152 -0
- package/dist/nav/mesh/mesh-path.js +643 -0
- package/dist/nav/mesh/mesh-reach.d.ts +78 -0
- package/dist/nav/mesh/mesh-reach.js +450 -0
- package/dist/nav/mesh/navmesh.d.ts +117 -0
- package/dist/nav/mesh/navmesh.js +647 -0
- package/dist/nav/mesh/polymesh.d.ts +24 -0
- package/dist/nav/mesh/polymesh.js +384 -0
- package/dist/nav/mesh/regions.d.ts +12 -0
- package/dist/nav/mesh/regions.js +367 -0
- package/dist/nav/mesh/serialize.d.ts +13 -0
- package/dist/nav/mesh/serialize.js +197 -0
- package/dist/nav/mesh/voxelize.d.ts +111 -0
- package/dist/nav/mesh/voxelize.js +552 -0
- package/dist/nav/obstacles.d.ts +75 -0
- package/dist/nav/obstacles.js +294 -0
- package/dist/nav/path.d.ts +59 -0
- package/dist/nav/path.js +177 -0
- package/dist/nav/query-queue.d.ts +46 -0
- package/dist/nav/query-queue.js +308 -0
- package/dist/nav/reach.d.ts +53 -0
- package/dist/nav/reach.js +148 -0
- package/dist/nav/steer.d.ts +36 -0
- package/dist/nav/steer.js +78 -0
- package/dist/platform/boot.d.ts +28 -0
- package/dist/platform/boot.js +43 -0
- package/dist/platform/device-mode.d.ts +40 -0
- package/dist/platform/device-mode.js +104 -0
- package/dist/platform/device.d.ts +31 -0
- package/dist/platform/device.js +91 -0
- package/dist/platform/environment.d.ts +42 -0
- package/dist/platform/environment.js +82 -0
- package/dist/platform/gpu.d.ts +40 -0
- package/dist/platform/gpu.js +57 -0
- package/dist/platform/index.d.ts +18 -0
- package/dist/platform/index.js +10 -0
- package/dist/platform/letterbox.d.ts +43 -0
- package/dist/platform/letterbox.js +57 -0
- package/dist/platform/links.d.ts +20 -0
- package/dist/platform/links.js +43 -0
- package/dist/platform/screens.d.ts +36 -0
- package/dist/platform/screens.js +138 -0
- package/dist/platform/surface.d.ts +72 -0
- package/dist/platform/surface.js +157 -0
- package/dist/platform/xr-fake.d.ts +168 -0
- package/dist/platform/xr-fake.js +434 -0
- package/dist/platform/xr-surface.d.ts +120 -0
- package/dist/platform/xr-surface.js +214 -0
- package/dist/platform/xr-types.d.ts +262 -0
- package/dist/post/ao.d.ts +12 -0
- package/dist/post/ao.js +136 -0
- package/dist/post/blend.d.ts +27 -0
- package/dist/post/blend.js +129 -0
- package/dist/post/depth-pass.d.ts +43 -0
- package/dist/post/depth-pass.js +118 -0
- package/dist/post/dof.d.ts +1 -0
- package/dist/post/dof.js +66 -0
- package/dist/post/exposure.d.ts +80 -0
- package/dist/post/exposure.js +322 -0
- package/dist/post/index.d.ts +12 -0
- package/dist/post/index.js +11 -0
- package/dist/post/lens-dirt.d.ts +13 -0
- package/dist/post/lens-dirt.js +91 -0
- package/dist/post/lut.d.ts +19 -0
- package/dist/post/lut.js +50 -0
- package/dist/post/motion-blur.d.ts +9 -0
- package/dist/post/motion-blur.js +78 -0
- package/dist/post/post-stack.d.ts +302 -0
- package/dist/post/post-stack.js +1137 -0
- package/dist/post/settings.d.ts +485 -0
- package/dist/post/settings.js +416 -0
- package/dist/post/shaders.d.ts +25 -0
- package/dist/post/shaders.js +410 -0
- package/dist/post/ssr.d.ts +16 -0
- package/dist/post/ssr.js +155 -0
- package/dist/post/taa.d.ts +74 -0
- package/dist/post/taa.js +235 -0
- package/dist/post/white-balance.d.ts +25 -0
- package/dist/post/white-balance.js +98 -0
- package/dist/render/bindings.d.ts +98 -0
- package/dist/render/bindings.js +281 -0
- package/dist/render/blend.d.ts +13 -0
- package/dist/render/blend.js +26 -0
- package/dist/render/camera-2d.d.ts +72 -0
- package/dist/render/camera-2d.js +92 -0
- package/dist/render/camera.d.ts +302 -0
- package/dist/render/camera.js +671 -0
- package/dist/render/color.d.ts +16 -0
- package/dist/render/color.js +41 -0
- package/dist/render/compressed.d.ts +104 -0
- package/dist/render/compressed.js +248 -0
- package/dist/render/diagnostics.d.ts +15 -0
- package/dist/render/diagnostics.js +43 -0
- package/dist/render/dynamic-resolution.d.ts +70 -0
- package/dist/render/dynamic-resolution.js +126 -0
- package/dist/render/fake-gpu.d.ts +204 -0
- package/dist/render/fake-gpu.js +426 -0
- package/dist/render/flipbook.d.ts +56 -0
- package/dist/render/flipbook.js +87 -0
- package/dist/render/frame.d.ts +278 -0
- package/dist/render/frame.js +174 -0
- package/dist/render/fullscreen.d.ts +54 -0
- package/dist/render/fullscreen.js +91 -0
- package/dist/render/gpu-timer.d.ts +73 -0
- package/dist/render/gpu-timer.js +186 -0
- package/dist/render/index.d.ts +53 -0
- package/dist/render/index.js +29 -0
- package/dist/render/instance-list.d.ts +185 -0
- package/dist/render/instance-list.js +547 -0
- package/dist/render/lights.d.ts +181 -0
- package/dist/render/lights.js +233 -0
- package/dist/render/lod.d.ts +54 -0
- package/dist/render/lod.js +52 -0
- package/dist/render/material.d.ts +165 -0
- package/dist/render/material.js +292 -0
- package/dist/render/mesh.d.ts +284 -0
- package/dist/render/mesh.js +472 -0
- package/dist/render/mipmap.d.ts +16 -0
- package/dist/render/mipmap.js +121 -0
- package/dist/render/parallax.d.ts +50 -0
- package/dist/render/parallax.js +47 -0
- package/dist/render/pbr-wgsl.d.ts +31 -0
- package/dist/render/pbr-wgsl.js +119 -0
- package/dist/render/ping-pong.d.ts +42 -0
- package/dist/render/ping-pong.js +74 -0
- package/dist/render/renderer.d.ts +741 -0
- package/dist/render/renderer.js +2486 -0
- package/dist/render/scene-pipelines.d.ts +44 -0
- package/dist/render/scene-pipelines.js +92 -0
- package/dist/render/scene-target.d.ts +170 -0
- package/dist/render/scene-target.js +450 -0
- package/dist/render/shadow.d.ts +74 -0
- package/dist/render/shadow.js +208 -0
- package/dist/render/skin.d.ts +112 -0
- package/dist/render/skin.js +240 -0
- package/dist/render/snapshot.d.ts +36 -0
- package/dist/render/snapshot.js +34 -0
- package/dist/render/standard.d.ts +162 -0
- package/dist/render/standard.js +263 -0
- package/dist/render/texture.d.ts +142 -0
- package/dist/render/texture.js +228 -0
- package/dist/render/tile-layer.d.ts +110 -0
- package/dist/render/tile-layer.js +304 -0
- package/dist/render/transform.d.ts +115 -0
- package/dist/render/transform.js +318 -0
- package/dist/render/wgsl.d.ts +131 -0
- package/dist/render/wgsl.js +528 -0
- package/dist/save/codec.d.ts +49 -0
- package/dist/save/codec.js +169 -0
- package/dist/save/index.d.ts +8 -0
- package/dist/save/index.js +8 -0
- package/dist/save/journal.d.ts +24 -0
- package/dist/save/journal.js +102 -0
- package/dist/save/migrate.d.ts +15 -0
- package/dist/save/migrate.js +37 -0
- package/dist/save/schema.d.ts +72 -0
- package/dist/save/schema.js +154 -0
- package/dist/save/settings.d.ts +28 -0
- package/dist/save/settings.js +59 -0
- package/dist/save/slots.d.ts +56 -0
- package/dist/save/slots.js +200 -0
- package/dist/save/storage.d.ts +35 -0
- package/dist/save/storage.js +62 -0
- package/dist/save/store.d.ts +114 -0
- package/dist/save/store.js +269 -0
- package/dist/testing/fake-host.d.ts +103 -0
- package/dist/testing/fake-host.js +163 -0
- package/dist/testing/fixed-clock.d.ts +25 -0
- package/dist/testing/fixed-clock.js +30 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/test-game.d.ts +76 -0
- package/dist/testing/test-game.js +92 -0
- package/dist/tween/ease.d.ts +77 -0
- package/dist/tween/ease.js +192 -0
- package/dist/tween/index.d.ts +8 -0
- package/dist/tween/index.js +7 -0
- package/dist/tween/timeline.d.ts +78 -0
- package/dist/tween/timeline.js +269 -0
- package/dist/tween/tween.d.ts +168 -0
- package/dist/tween/tween.js +320 -0
- package/dist/ui/anchor.d.ts +206 -0
- package/dist/ui/anchor.js +307 -0
- package/dist/ui/caption.d.ts +122 -0
- package/dist/ui/caption.js +286 -0
- package/dist/ui/cursor.d.ts +105 -0
- package/dist/ui/cursor.js +261 -0
- package/dist/ui/dom.d.ts +30 -0
- package/dist/ui/dom.js +92 -0
- package/dist/ui/floats.d.ts +86 -0
- package/dist/ui/floats.js +260 -0
- package/dist/ui/hud.d.ts +198 -0
- package/dist/ui/hud.js +431 -0
- package/dist/ui/index.d.ts +37 -0
- package/dist/ui/index.js +34 -0
- package/dist/ui/inventory-card.d.ts +52 -0
- package/dist/ui/inventory-card.js +173 -0
- package/dist/ui/inventory-context.d.ts +29 -0
- package/dist/ui/inventory-context.js +125 -0
- package/dist/ui/inventory-drag.d.ts +63 -0
- package/dist/ui/inventory-drag.js +394 -0
- package/dist/ui/inventory-grid.d.ts +66 -0
- package/dist/ui/inventory-grid.js +625 -0
- package/dist/ui/inventory-radial.d.ts +39 -0
- package/dist/ui/inventory-radial.js +168 -0
- package/dist/ui/inventory.d.ts +128 -0
- package/dist/ui/inventory.js +154 -0
- package/dist/ui/layout.d.ts +356 -0
- package/dist/ui/layout.js +856 -0
- package/dist/ui/link.d.ts +64 -0
- package/dist/ui/link.js +155 -0
- package/dist/ui/loading.d.ts +40 -0
- package/dist/ui/loading.js +157 -0
- package/dist/ui/loupe.d.ts +74 -0
- package/dist/ui/loupe.js +164 -0
- package/dist/ui/menu-nav.d.ts +33 -0
- package/dist/ui/menu-nav.js +28 -0
- package/dist/ui/minimap-canvas.d.ts +145 -0
- package/dist/ui/minimap-canvas.js +460 -0
- package/dist/ui/notify.d.ts +40 -0
- package/dist/ui/notify.js +141 -0
- package/dist/ui/orb.d.ts +53 -0
- package/dist/ui/orb.js +304 -0
- package/dist/ui/overlay.d.ts +213 -0
- package/dist/ui/overlay.js +394 -0
- package/dist/ui/padnav.d.ts +53 -0
- package/dist/ui/padnav.js +146 -0
- package/dist/ui/perf.d.ts +130 -0
- package/dist/ui/perf.js +329 -0
- package/dist/ui/rotate-card.d.ts +54 -0
- package/dist/ui/rotate-card.js +97 -0
- package/dist/ui/stack.d.ts +128 -0
- package/dist/ui/stack.js +312 -0
- package/dist/ui/styles.d.ts +13 -0
- package/dist/ui/styles.js +200 -0
- package/dist/ui/text-scale.d.ts +67 -0
- package/dist/ui/text-scale.js +102 -0
- package/dist/ui/theme.d.ts +70 -0
- package/dist/ui/theme.js +98 -0
- package/dist/ui/toast.d.ts +23 -0
- package/dist/ui/toast.js +46 -0
- package/dist/ui/tooltip.d.ts +89 -0
- package/dist/ui/tooltip.js +333 -0
- package/dist/ui/widgets-2.d.ts +134 -0
- package/dist/ui/widgets-2.js +399 -0
- package/dist/ui/widgets-3.d.ts +91 -0
- package/dist/ui/widgets-3.js +212 -0
- package/dist/ui/widgets.d.ts +34 -0
- package/dist/ui/widgets.js +50 -0
- package/dist/ui/world-panel/index.d.ts +5 -0
- package/dist/ui/world-panel/index.js +5 -0
- package/dist/ui/world-panel/layout.d.ts +38 -0
- package/dist/ui/world-panel/layout.js +68 -0
- package/dist/ui/world-panel/paint.d.ts +96 -0
- package/dist/ui/world-panel/paint.js +136 -0
- package/dist/ui/world-panel/panel.d.ts +235 -0
- package/dist/ui/world-panel/panel.js +762 -0
- package/dist/ui/world-panel/wgsl.d.ts +10 -0
- package/dist/ui/world-panel/wgsl.js +52 -0
- package/dist/ui/world-panel/widgets.d.ts +207 -0
- package/dist/ui/world-panel/widgets.js +569 -0
- package/dist/voxel/chunks.d.ts +77 -0
- package/dist/voxel/chunks.js +149 -0
- package/dist/voxel/grid.d.ts +84 -0
- package/dist/voxel/grid.js +223 -0
- package/dist/voxel/index.d.ts +22 -0
- package/dist/voxel/index.js +7 -0
- package/dist/voxel/mesher-worker.d.ts +14 -0
- package/dist/voxel/mesher-worker.js +47 -0
- package/dist/voxel/mesher.d.ts +73 -0
- package/dist/voxel/mesher.js +306 -0
- package/dist/voxel/ray.d.ts +32 -0
- package/dist/voxel/ray.js +73 -0
- package/dist/voxel/wgsl.d.ts +16 -0
- package/dist/voxel/wgsl.js +28 -0
- package/dist/voxel/worker-client.d.ts +79 -0
- package/dist/voxel/worker-client.js +122 -0
- package/package.json +177 -3
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Groups and the manager. `SequenceTween` runs its children one after another, carrying the
|
|
3
|
+
* leftover of a child's last step into the next; `ParallelTween` advances all of them and ends
|
|
4
|
+
* with the last. Both are tweens themselves (delay, loops, yoyo, callbacks), so they nest.
|
|
5
|
+
*
|
|
6
|
+
* `Tweens` holds the root tweens and ticks them with `update(dt)`. A tween that completes or is
|
|
7
|
+
* killed, even inside the update that is running, is compacted out at the end of that update;
|
|
8
|
+
* tweens created during an update start on the next one.
|
|
9
|
+
*/
|
|
10
|
+
import { DelayTween, PropertyTween, TweenBase, ValueTween, } from './tween.js';
|
|
11
|
+
/** Base of the two groups: takes the children out of the manager and drives them itself. */
|
|
12
|
+
class GroupTween extends TweenBase {
|
|
13
|
+
children;
|
|
14
|
+
constructor(children, opts) {
|
|
15
|
+
super(0, opts);
|
|
16
|
+
this.children = children.map((c) => {
|
|
17
|
+
if (!(c instanceof TweenBase))
|
|
18
|
+
throw new Error('tween: not a tween of this module');
|
|
19
|
+
if (c.grouped)
|
|
20
|
+
throw new Error('tween: a tween can join only one group');
|
|
21
|
+
c.grouped = true;
|
|
22
|
+
c.owner = null;
|
|
23
|
+
c.listed = false;
|
|
24
|
+
return c;
|
|
25
|
+
});
|
|
26
|
+
this.duration = this.childDuration();
|
|
27
|
+
}
|
|
28
|
+
/** @internal Kill the children whose target is `target`. */
|
|
29
|
+
killTarget(target) {
|
|
30
|
+
for (const c of this.children)
|
|
31
|
+
killTargetIn(c, target);
|
|
32
|
+
}
|
|
33
|
+
resetChildren() {
|
|
34
|
+
for (const c of this.children)
|
|
35
|
+
c.reset(true);
|
|
36
|
+
}
|
|
37
|
+
onIteration() {
|
|
38
|
+
this.resetChildren();
|
|
39
|
+
this.capture();
|
|
40
|
+
}
|
|
41
|
+
capture() {
|
|
42
|
+
const rev = this.reversed;
|
|
43
|
+
for (const c of this.children)
|
|
44
|
+
c.parentReversed = rev;
|
|
45
|
+
}
|
|
46
|
+
applyAt() { }
|
|
47
|
+
/** Bookkeeping after the children moved: progress, callbacks, loops, completion. */
|
|
48
|
+
settle(leftover, allDone) {
|
|
49
|
+
const consumed = this.childConsumed();
|
|
50
|
+
this.elapsed = Number.isFinite(consumed) ? consumed : this.elapsed;
|
|
51
|
+
this.progress = this.duration > 0 ? Math.min(1, this.elapsed / this.duration) : 1;
|
|
52
|
+
if (allDone) {
|
|
53
|
+
this.elapsed = this.duration;
|
|
54
|
+
this.progress = 1;
|
|
55
|
+
}
|
|
56
|
+
this.onUpdate?.(this);
|
|
57
|
+
if (this.killed)
|
|
58
|
+
return 0;
|
|
59
|
+
if (!allDone)
|
|
60
|
+
return 0;
|
|
61
|
+
if (this.canLoop()) {
|
|
62
|
+
this.nextIteration();
|
|
63
|
+
return leftover > 0 ? this.run(leftover) : 0;
|
|
64
|
+
}
|
|
65
|
+
this.finish();
|
|
66
|
+
return leftover;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** @internal */
|
|
70
|
+
export function killTargetIn(t, target) {
|
|
71
|
+
if (t instanceof PropertyTween) {
|
|
72
|
+
if (t.target === target)
|
|
73
|
+
t.kill();
|
|
74
|
+
}
|
|
75
|
+
else if (t instanceof GroupTween) {
|
|
76
|
+
t.killTarget(target);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export class SequenceTween extends GroupTween {
|
|
80
|
+
childDuration() {
|
|
81
|
+
let s = 0;
|
|
82
|
+
for (const c of this.children)
|
|
83
|
+
s += c.total;
|
|
84
|
+
return s;
|
|
85
|
+
}
|
|
86
|
+
childConsumed() {
|
|
87
|
+
let s = 0;
|
|
88
|
+
for (const c of this.children)
|
|
89
|
+
s += c.consumed;
|
|
90
|
+
return s;
|
|
91
|
+
}
|
|
92
|
+
run(local) {
|
|
93
|
+
const kids = this.children;
|
|
94
|
+
const n = kids.length;
|
|
95
|
+
const rev = this.reversed;
|
|
96
|
+
let i = 0;
|
|
97
|
+
while (local > 0) {
|
|
98
|
+
while (i < n && kids[rev ? n - 1 - i : i].done)
|
|
99
|
+
i++;
|
|
100
|
+
if (i === n)
|
|
101
|
+
break;
|
|
102
|
+
const child = kids[rev ? n - 1 - i : i];
|
|
103
|
+
const rest = child.advance(local);
|
|
104
|
+
if (this.killed)
|
|
105
|
+
return 0;
|
|
106
|
+
if (!child.done)
|
|
107
|
+
break; // still running: paused, held, or it used the time
|
|
108
|
+
local = rest;
|
|
109
|
+
}
|
|
110
|
+
let allDone = true;
|
|
111
|
+
for (let j = 0; j < n; j++)
|
|
112
|
+
if (!kids[j].done)
|
|
113
|
+
allDone = false;
|
|
114
|
+
return this.settle(allDone ? local : 0, allDone);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export class ParallelTween extends GroupTween {
|
|
118
|
+
childDuration() {
|
|
119
|
+
let s = 0;
|
|
120
|
+
for (const c of this.children)
|
|
121
|
+
s = Math.max(s, c.total);
|
|
122
|
+
return s;
|
|
123
|
+
}
|
|
124
|
+
childConsumed() {
|
|
125
|
+
let s = 0;
|
|
126
|
+
for (const c of this.children)
|
|
127
|
+
s = Math.max(s, c.consumed);
|
|
128
|
+
return s;
|
|
129
|
+
}
|
|
130
|
+
run(local) {
|
|
131
|
+
const kids = this.children;
|
|
132
|
+
let allDone = true;
|
|
133
|
+
let leftover = local;
|
|
134
|
+
for (let i = 0; i < kids.length; i++) {
|
|
135
|
+
const c = kids[i];
|
|
136
|
+
const rest = c.advance(local);
|
|
137
|
+
if (this.killed)
|
|
138
|
+
return 0;
|
|
139
|
+
if (!c.done)
|
|
140
|
+
allDone = false;
|
|
141
|
+
if (rest < leftover)
|
|
142
|
+
leftover = rest;
|
|
143
|
+
}
|
|
144
|
+
return this.settle(allDone ? leftover : 0, allDone);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/** Creates and ticks tweens. One per game is plenty; call `update(dt)` from your frame hook. */
|
|
148
|
+
export class Tweens {
|
|
149
|
+
list = [];
|
|
150
|
+
updating = false;
|
|
151
|
+
/** Tweens that have neither completed nor been killed (a group counts once). */
|
|
152
|
+
get active() {
|
|
153
|
+
let n = 0;
|
|
154
|
+
const list = this.list;
|
|
155
|
+
for (let i = 0; i < list.length; i++)
|
|
156
|
+
if (!list[i].done)
|
|
157
|
+
n++;
|
|
158
|
+
return n;
|
|
159
|
+
}
|
|
160
|
+
/** Advance every root tween by `dt` seconds. Negative or NaN counts as 0. */
|
|
161
|
+
update(dt) {
|
|
162
|
+
if (this.updating)
|
|
163
|
+
throw new Error('tween: update called from inside update');
|
|
164
|
+
this.updating = true;
|
|
165
|
+
const list = this.list;
|
|
166
|
+
const n = list.length;
|
|
167
|
+
// NaN and negative dt both tick by 0.
|
|
168
|
+
// biome-ignore lint/complexity/useMathMinMax: Math.max(NaN, 0) is NaN.
|
|
169
|
+
const step = dt > 0 ? dt : 0;
|
|
170
|
+
try {
|
|
171
|
+
for (let i = 0; i < n; i++) {
|
|
172
|
+
const t = list[i];
|
|
173
|
+
if (!t.grouped)
|
|
174
|
+
t.advance(step);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
finally {
|
|
178
|
+
this.updating = false;
|
|
179
|
+
}
|
|
180
|
+
this.compact();
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Animate number fields of `target` to the values in `props` (`'x'`, `'position.0'`,
|
|
184
|
+
* `'style.opacity'`; typed-array indices work) over `seconds`. Start values are read when
|
|
185
|
+
* the tween starts (after its delay).
|
|
186
|
+
*/
|
|
187
|
+
to(target, props, seconds, opts = {}) {
|
|
188
|
+
return this.add(new PropertyTween(target, props, seconds, opts));
|
|
189
|
+
}
|
|
190
|
+
/** Animate one number, calling `onUpdate(value, tween)` every step. */
|
|
191
|
+
value(from, to, seconds, onUpdate, opts = {}) {
|
|
192
|
+
return this.add(new ValueTween(from, to, seconds, onUpdate, opts));
|
|
193
|
+
}
|
|
194
|
+
/** Nothing for `seconds`: a gap in a sequence, or a timer with `then`. */
|
|
195
|
+
delay(seconds, opts = {}) {
|
|
196
|
+
return this.add(new DelayTween(seconds, opts));
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Run tweens one after another, carrying leftover time from one into the next. A
|
|
200
|
+
* `TweenOptions` object as the last argument applies to the whole (delay, loops, yoyo, …).
|
|
201
|
+
*/
|
|
202
|
+
sequence(...tweens) {
|
|
203
|
+
const [kids, opts] = splitArgs(tweens);
|
|
204
|
+
return this.addGroup(new SequenceTween(kids, opts));
|
|
205
|
+
}
|
|
206
|
+
/** Run tweens together; ends when the last one has. Options as for `sequence`. */
|
|
207
|
+
parallel(...tweens) {
|
|
208
|
+
const [kids, opts] = splitArgs(tweens);
|
|
209
|
+
return this.addGroup(new ParallelTween(kids, opts));
|
|
210
|
+
}
|
|
211
|
+
/** Kill every property tween on `target`, inside groups too. */
|
|
212
|
+
kill(target) {
|
|
213
|
+
const list = this.list;
|
|
214
|
+
for (let i = 0; i < list.length; i++)
|
|
215
|
+
killTargetIn(list[i], target);
|
|
216
|
+
if (!this.updating)
|
|
217
|
+
this.compact();
|
|
218
|
+
}
|
|
219
|
+
/** Kill every tween. */
|
|
220
|
+
killAll() {
|
|
221
|
+
const list = this.list;
|
|
222
|
+
for (let i = 0; i < list.length; i++)
|
|
223
|
+
list[i].kill();
|
|
224
|
+
if (!this.updating)
|
|
225
|
+
this.compact();
|
|
226
|
+
}
|
|
227
|
+
/** @internal */
|
|
228
|
+
readd(t) {
|
|
229
|
+
if (t.listed || t.grouped)
|
|
230
|
+
return;
|
|
231
|
+
t.listed = true;
|
|
232
|
+
this.list.push(t);
|
|
233
|
+
}
|
|
234
|
+
add(t) {
|
|
235
|
+
t.owner = this;
|
|
236
|
+
t.listed = true;
|
|
237
|
+
this.list.push(t);
|
|
238
|
+
return t;
|
|
239
|
+
}
|
|
240
|
+
/** A group took its children out of the root list. */
|
|
241
|
+
addGroup(t) {
|
|
242
|
+
if (!this.updating)
|
|
243
|
+
this.compact();
|
|
244
|
+
return this.add(t);
|
|
245
|
+
}
|
|
246
|
+
compact() {
|
|
247
|
+
const list = this.list;
|
|
248
|
+
let w = 0;
|
|
249
|
+
for (let i = 0; i < list.length; i++) {
|
|
250
|
+
const t = list[i];
|
|
251
|
+
if (t.done || t.grouped)
|
|
252
|
+
t.listed = false;
|
|
253
|
+
else
|
|
254
|
+
list[w++] = t;
|
|
255
|
+
}
|
|
256
|
+
list.length = w;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
function splitArgs(args) {
|
|
260
|
+
const last = args[args.length - 1];
|
|
261
|
+
if (last !== undefined && !(last instanceof TweenBase)) {
|
|
262
|
+
return [args.slice(0, -1), last];
|
|
263
|
+
}
|
|
264
|
+
return [args, {}];
|
|
265
|
+
}
|
|
266
|
+
/** A new tween manager. */
|
|
267
|
+
export function createTweens() {
|
|
268
|
+
return new Tweens();
|
|
269
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tweens: the `Tween` handle every kind shares, and the three leaf kinds (`PropertyTween`,
|
|
3
|
+
* `ValueTween`, `DelayTween`). `timeline.ts` adds the groups and the `Tweens` manager.
|
|
4
|
+
*
|
|
5
|
+
* A tween is driven through `advance(dt)`, which returns the part of `dt` it did not use (0
|
|
6
|
+
* while running; the overflow once it finishes), so a sequence carries leftover time into the
|
|
7
|
+
* next child and a loop into the next iteration. After construction nothing here allocates per
|
|
8
|
+
* update: property paths are resolved to holders and keys up front, start values are captured
|
|
9
|
+
* into typed arrays, and callbacks are stored in arrays that only grow in `then`.
|
|
10
|
+
*/
|
|
11
|
+
import { type Ease, type SpringEase } from './ease.js';
|
|
12
|
+
export interface TweenOptions {
|
|
13
|
+
/** Easing (default `ease.linear`), or `ease.spring(...)` for a duration-free spring. */
|
|
14
|
+
ease?: Ease | SpringEase;
|
|
15
|
+
/** Seconds to wait before the first iteration starts. Default 0. */
|
|
16
|
+
delay?: number;
|
|
17
|
+
/** Extra iterations after the first: `0` (default) plays once, `2` three times, `-1` forever. */
|
|
18
|
+
loops?: number;
|
|
19
|
+
/** Alternate direction on every other iteration (needs `loops`). Default false. */
|
|
20
|
+
yoyo?: boolean;
|
|
21
|
+
/** Called once, when the first iteration starts (after `delay`; start values are read then). */
|
|
22
|
+
onStart?: (tween: Tween) => void;
|
|
23
|
+
/** Called after every update that moved the tween, including the final one. */
|
|
24
|
+
onUpdate?: (tween: Tween) => void;
|
|
25
|
+
/** Called once, when the last iteration ends. Not called on `kill`. */
|
|
26
|
+
onComplete?: (tween: Tween) => void;
|
|
27
|
+
/** Multiplies `dt`. Default 1; `0` holds. Settable later through `tween.timeScale`. */
|
|
28
|
+
timeScale?: number;
|
|
29
|
+
}
|
|
30
|
+
/** The handle every tween kind returns. Read-only fields update on every `Tweens.update`. */
|
|
31
|
+
export interface Tween {
|
|
32
|
+
/** Linear position of the current iteration, 0..1 (a spring's position, which may overshoot). */
|
|
33
|
+
readonly progress: number;
|
|
34
|
+
/** Seconds into the current iteration (excluding the delay). */
|
|
35
|
+
readonly elapsed: number;
|
|
36
|
+
/** Seconds one iteration lasts (`Infinity` for a spring). */
|
|
37
|
+
readonly duration: number;
|
|
38
|
+
/** True once the last iteration has ended. */
|
|
39
|
+
readonly complete: boolean;
|
|
40
|
+
/** True after `kill()`: dropped from its manager or skipped by its group; never completes. */
|
|
41
|
+
readonly killed: boolean;
|
|
42
|
+
readonly paused: boolean;
|
|
43
|
+
/** Multiplies `dt`; settable. */
|
|
44
|
+
timeScale: number;
|
|
45
|
+
/** Hold: `update` leaves the tween where it is (a sequence waits on a paused child). */
|
|
46
|
+
pause(): void;
|
|
47
|
+
resume(): void;
|
|
48
|
+
/** Stop and drop: no further callbacks, `complete` stays false. */
|
|
49
|
+
kill(): void;
|
|
50
|
+
/** Back to the start (delay included); a finished or killed root tween rejoins its manager. */
|
|
51
|
+
restart(): void;
|
|
52
|
+
/** Run `fn` when the tween completes (at once if it already has). Returns the tween. */
|
|
53
|
+
then(fn: () => void): Tween;
|
|
54
|
+
/** Resolves when the tween completes. A killed tween's promise never settles. */
|
|
55
|
+
promise(): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
/** Internal hooks a `Tweens` manager uses on a root tween. */
|
|
58
|
+
export interface TweenOwner {
|
|
59
|
+
/** Re-register a root tween that finished or was killed. */
|
|
60
|
+
readd(t: TweenBase): void;
|
|
61
|
+
}
|
|
62
|
+
export declare abstract class TweenBase implements Tween {
|
|
63
|
+
progress: number;
|
|
64
|
+
elapsed: number;
|
|
65
|
+
duration: number;
|
|
66
|
+
complete: boolean;
|
|
67
|
+
killed: boolean;
|
|
68
|
+
paused: boolean;
|
|
69
|
+
timeScale: number;
|
|
70
|
+
/** @internal The manager this tween registered with (roots only). */
|
|
71
|
+
owner: TweenOwner | null;
|
|
72
|
+
/** @internal True while the owner's list holds this tween. */
|
|
73
|
+
listed: boolean;
|
|
74
|
+
/** @internal True once a group took the tween; it then never talks to the manager. */
|
|
75
|
+
grouped: boolean;
|
|
76
|
+
/** @internal Direction imposed by the parent (yoyo on a group). */
|
|
77
|
+
parentReversed: boolean;
|
|
78
|
+
protected readonly ease: Ease | null;
|
|
79
|
+
protected readonly spring: SpringEase | null;
|
|
80
|
+
protected readonly delay: number;
|
|
81
|
+
protected readonly loops: number;
|
|
82
|
+
protected readonly yoyo: boolean;
|
|
83
|
+
protected readonly onStart: ((t: Tween) => void) | undefined;
|
|
84
|
+
protected readonly onUpdate: ((t: Tween) => void) | undefined;
|
|
85
|
+
protected readonly onComplete: ((t: Tween) => void) | undefined;
|
|
86
|
+
protected delayLeft: number;
|
|
87
|
+
protected iteration: number;
|
|
88
|
+
protected started: boolean;
|
|
89
|
+
/** Start values were read once; a group's loop replays them instead of reading again. */
|
|
90
|
+
private captured;
|
|
91
|
+
private keepStart;
|
|
92
|
+
private thenFns;
|
|
93
|
+
/** Spring state `[position, velocity]`, springs only. */
|
|
94
|
+
private readonly springState;
|
|
95
|
+
constructor(seconds: number, opts: TweenOptions);
|
|
96
|
+
pause(): void;
|
|
97
|
+
resume(): void;
|
|
98
|
+
kill(): void;
|
|
99
|
+
restart(): void;
|
|
100
|
+
then(fn: () => void): Tween;
|
|
101
|
+
promise(): Promise<void>;
|
|
102
|
+
/** @internal True once the tween no longer moves. */
|
|
103
|
+
get done(): boolean;
|
|
104
|
+
/** @internal Seconds the whole tween lasts: delay plus every iteration; `Infinity` if it never ends. */
|
|
105
|
+
get total(): number;
|
|
106
|
+
/** @internal Seconds consumed so far, delay and finished iterations included. */
|
|
107
|
+
get consumed(): number;
|
|
108
|
+
/**
|
|
109
|
+
* @internal Back to the initial state without touching the manager. With `keepStart` (a
|
|
110
|
+
* group looping) the start values read on the first run are kept, so the motion replays.
|
|
111
|
+
*/
|
|
112
|
+
reset(keepStart?: boolean): void;
|
|
113
|
+
/** @internal Groups reset their children here. */
|
|
114
|
+
protected resetChildren(): void;
|
|
115
|
+
/** @internal The direction of the current iteration: true runs 1 → 0. */
|
|
116
|
+
protected get reversed(): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* @internal Move forward by `dt` seconds (unscaled). Returns the part of `dt` left unused:
|
|
119
|
+
* 0 while running or paused, the overflow when the tween finishes, all of it when it already
|
|
120
|
+
* had.
|
|
121
|
+
*/
|
|
122
|
+
advance(dt: number): number;
|
|
123
|
+
/** @internal Move by `local` (scaled) seconds past the delay; return the unused part. */
|
|
124
|
+
protected run(local: number): number;
|
|
125
|
+
private runSpring;
|
|
126
|
+
private runTimed;
|
|
127
|
+
/** @internal Whether another iteration follows the current one. */
|
|
128
|
+
protected canLoop(): boolean;
|
|
129
|
+
/** @internal Begin the next iteration. */
|
|
130
|
+
protected nextIteration(): void;
|
|
131
|
+
/** @internal A loop boundary was crossed (groups restart their children). */
|
|
132
|
+
protected onIteration(): void;
|
|
133
|
+
/** @internal Mark complete and fire the completion callbacks. */
|
|
134
|
+
protected finish(): void;
|
|
135
|
+
/** @internal Read start values; runs once per `restart`, after the delay. */
|
|
136
|
+
protected abstract capture(): void;
|
|
137
|
+
/** @internal Write the eased position `k` (0..1, may overshoot) to the animated values. */
|
|
138
|
+
protected abstract applyAt(k: number): void;
|
|
139
|
+
}
|
|
140
|
+
/** Nested number fields by dotted path: `'x'`, `'position.0'`, `'style.opacity'`. */
|
|
141
|
+
export type TweenProps = Record<string, number>;
|
|
142
|
+
/** Animates number fields of an object (nested paths and typed-array indices allowed). */
|
|
143
|
+
export declare class PropertyTween extends TweenBase {
|
|
144
|
+
readonly target: object;
|
|
145
|
+
private readonly holders;
|
|
146
|
+
private readonly keys;
|
|
147
|
+
private readonly from;
|
|
148
|
+
private readonly to;
|
|
149
|
+
constructor(target: object, props: TweenProps, seconds: number, opts: TweenOptions);
|
|
150
|
+
protected capture(): void;
|
|
151
|
+
protected applyAt(k: number): void;
|
|
152
|
+
}
|
|
153
|
+
/** Animates one number from `from` to `to`, reporting it through `onUpdate(value, tween)`. */
|
|
154
|
+
export declare class ValueTween extends TweenBase {
|
|
155
|
+
/** The value from the last update. */
|
|
156
|
+
value: number;
|
|
157
|
+
private readonly from;
|
|
158
|
+
private readonly to;
|
|
159
|
+
private readonly report;
|
|
160
|
+
constructor(from: number, to: number, seconds: number, onUpdate: (value: number, tween: Tween) => void, opts: TweenOptions);
|
|
161
|
+
protected capture(): void;
|
|
162
|
+
protected applyAt(k: number): void;
|
|
163
|
+
}
|
|
164
|
+
/** Does nothing for `seconds`; a pause inside a sequence. */
|
|
165
|
+
export declare class DelayTween extends TweenBase {
|
|
166
|
+
protected capture(): void;
|
|
167
|
+
protected applyAt(): void;
|
|
168
|
+
}
|