@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,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input recording and replay (ws/input-replay). A recorder sits beside an `Input` through its
|
|
3
|
+
* feed hook (`Input.onFeed`) and writes down, tick by tick, every feed call and the gamepad
|
|
4
|
+
* snapshot `update()` read. A playback feeds the same calls back into an `Input` before each
|
|
5
|
+
* `update()` and hands it the recorded pads, so an identical game sees identical `pressed`,
|
|
6
|
+
* `held`, `released` and `value` per tick. Neither changes how `Input` evaluates bindings.
|
|
7
|
+
*
|
|
8
|
+
* The recording is plain JSON: `{ version: 3, ticks: [...] }`, deltas only. A tick with events
|
|
9
|
+
* is `{ t, k?, b?, p?, w?, r?, d?, g?, ptr?, cx?, cs?, ui? }`; a run of ticks with none is
|
|
10
|
+
* `{ t, n }`.
|
|
11
|
+
* Version 2 (ws/input-5) adds the `ptr` lane (every pointer the dispatcher saw, so touch zones,
|
|
12
|
+
* gestures and a second thumb replay) and the observational `cx` and `cs`. Version 3
|
|
13
|
+
* (ws/input-7) stamps each `ptr` entry with its time, so a replayed tap, long-press or
|
|
14
|
+
* double-tap classifies as it did live. Versions 1 and 2 still parse and play. A recording may
|
|
15
|
+
* carry `tickMs`, its tick spacing (ws/input-9), which a playback given a tick `clock` advances
|
|
16
|
+
* it by per fed tick, so a replay at any `speed` keeps game time. The `ui` lane (ws/input-12)
|
|
17
|
+
* holds the overlay controls that fired on a tick, by stable id (`Input.control`); a playback
|
|
18
|
+
* replays them through `Input.replayControl` and an older reader skips them.
|
|
19
|
+
*/
|
|
20
|
+
import { type TickClock } from './clock.js';
|
|
21
|
+
import type { Input } from './input.js';
|
|
22
|
+
import type { PointerState } from './types.js';
|
|
23
|
+
/** One gamepad as recorded: button values (1 when `pressed`) and axes. `null` for an empty slot. */
|
|
24
|
+
export type PadSnapshot = {
|
|
25
|
+
buttons: number[];
|
|
26
|
+
axes: number[];
|
|
27
|
+
} | null;
|
|
28
|
+
/** A tick on which something was fed. Fields are present only when that kind of event happened. */
|
|
29
|
+
export interface InputTickEvents {
|
|
30
|
+
/** Tick index, counted from the recorder's start. */
|
|
31
|
+
t: number;
|
|
32
|
+
/** Keys, in call order: `[code, 1]` down, `[code, 0]` up. */
|
|
33
|
+
k?: [string, 0 | 1][];
|
|
34
|
+
/** Mouse buttons, in call order: `[button, 1]` down, `[button, 0]` up. */
|
|
35
|
+
b?: [number, 0 | 1][];
|
|
36
|
+
/** The last pointer position fed this tick, client CSS px; the type when not `mouse`. */
|
|
37
|
+
p?: [number, number, PointerState['type']?];
|
|
38
|
+
/** Wheel delta summed over the tick. */
|
|
39
|
+
w?: [number, number];
|
|
40
|
+
/** `releaseAll` was called (replayed first on the tick). */
|
|
41
|
+
r?: 1;
|
|
42
|
+
/**
|
|
43
|
+
* A key went down after the tick's last pointer position was fed, so the keyboard is the
|
|
44
|
+
* `lastDevice`; the playback then feeds `p` before `k`. Absent, `p` is fed after `k`.
|
|
45
|
+
*/
|
|
46
|
+
d?: 1;
|
|
47
|
+
/** The pads `update()` read, when they differ from the previous snapshot. */
|
|
48
|
+
g?: PadSnapshot[];
|
|
49
|
+
/**
|
|
50
|
+
* `Input.rumble` calls this tick, in call order: `[strong, weak, ms]` or `[strong, weak, ms,
|
|
51
|
+
* pad]`. Playback does not re-issue them (the game does, from the same inputs); they are kept
|
|
52
|
+
* so a replay can assert the game rumbled when it should.
|
|
53
|
+
*/
|
|
54
|
+
rumble?: [number, number, number, number?][];
|
|
55
|
+
/**
|
|
56
|
+
* Every pointer event the attached dispatcher delivered this tick, in order (version 2): see
|
|
57
|
+
* `InputPointerEntry`. Consecutive moves of one pointer keep only the last. Playback dispatches
|
|
58
|
+
* them on the attached pointer target after the other lanes; without one they are skipped.
|
|
59
|
+
*/
|
|
60
|
+
ptr?: InputPointerEntry[];
|
|
61
|
+
/**
|
|
62
|
+
* Context pushes (`[name, 1]`) and removals (`[name, 0]`) this tick, in order (version 2).
|
|
63
|
+
* Observational, like `rumble`: the game pushes them again from the same inputs.
|
|
64
|
+
*/
|
|
65
|
+
cx?: [string, 0 | 1][];
|
|
66
|
+
/** Actions `consume`d this tick, in order (version 2). Observational. */
|
|
67
|
+
cs?: string[];
|
|
68
|
+
/**
|
|
69
|
+
* Overlay controls that fired this tick, by stable id, in order (`Input.control`, ws/input-12).
|
|
70
|
+
* Playback replays them after the other lanes, before the tick's `update()`
|
|
71
|
+
* (`Input.replayControl`), so a control's handler runs on its recorded tick.
|
|
72
|
+
*/
|
|
73
|
+
ui?: string[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* One recorded pointer event: `[phase, id, device, clientX, clientY, button, primary, time]`,
|
|
77
|
+
* phase 0 down, 1 move, 2 up, 3 cancel, 4 leave; `primary` 1 or 0. `time` (version 3) is when
|
|
78
|
+
* the event happened, ms since the recorder started, on the recorder's clock (the linked
|
|
79
|
+
* gestures' `now`), rounded to 0.01 ms; version 2 entries have no `time`. A window blur is
|
|
80
|
+
* recorded as a cancel of every pointer still down.
|
|
81
|
+
*/
|
|
82
|
+
export type InputPointerEntry = [
|
|
83
|
+
0 | 1 | 2 | 3 | 4,
|
|
84
|
+
number,
|
|
85
|
+
'mouse' | 'touch' | 'pen',
|
|
86
|
+
number,
|
|
87
|
+
number,
|
|
88
|
+
number,
|
|
89
|
+
0 | 1,
|
|
90
|
+
number?
|
|
91
|
+
];
|
|
92
|
+
/** A run of `n` ticks starting at `t` on which nothing was fed. */
|
|
93
|
+
export interface InputTickRun {
|
|
94
|
+
t: number;
|
|
95
|
+
n: number;
|
|
96
|
+
}
|
|
97
|
+
export type InputTick = InputTickEvents | InputTickRun;
|
|
98
|
+
/** What `createInputRecorder` builds and `createInputPlayback` reads. Plain JSON. */
|
|
99
|
+
export interface InputRecording {
|
|
100
|
+
/** 3 from ws/input-7 (`ptr` entries carry `time`); 2 (ws/input-5: `ptr`, `cx`, `cs`) and 1 still read. */
|
|
101
|
+
version: 1 | 2 | 3;
|
|
102
|
+
ticks: InputTick[];
|
|
103
|
+
/**
|
|
104
|
+
* Ms between ticks while recording (ws/input-9): the mean spacing on the recorder's clock
|
|
105
|
+
* (exactly the fixed step on a `createTickClock()`), or `Input.tickMs` when the recorder ran on
|
|
106
|
+
* the wall clock. A playback given a `clock` advances it by this per fed tick. Absent in
|
|
107
|
+
* recordings made before ws/input-9 and in a recording of no ticks.
|
|
108
|
+
*/
|
|
109
|
+
tickMs?: number;
|
|
110
|
+
}
|
|
111
|
+
export interface InputRecorderOptions {
|
|
112
|
+
/** Capture the pads `update()` reads. Default true. */
|
|
113
|
+
pads?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* The clock pointer `time`s are stamped on (ws/input-7). Default: the clock of the gestures
|
|
116
|
+
* linked to the input when the recorder is made (`Gestures.now`), else the linked look's
|
|
117
|
+
* (`Look.clock`, ws/input-8), else `performance.now()`. With a `createTickClock()` shared by
|
|
118
|
+
* gestures and look, times are game time.
|
|
119
|
+
*/
|
|
120
|
+
now?: () => number;
|
|
121
|
+
}
|
|
122
|
+
export interface InputRecorder {
|
|
123
|
+
/**
|
|
124
|
+
* Close the current tick. Called for you from `input.update()` (through the feed hook), so a
|
|
125
|
+
* game never calls it; it is public for driving a recorder by hand in tests.
|
|
126
|
+
*/
|
|
127
|
+
tick(): void;
|
|
128
|
+
/** Uninstall the hook and return the recording (the same object as `recording`). */
|
|
129
|
+
stop(): InputRecording;
|
|
130
|
+
/** The recording so far, live. */
|
|
131
|
+
readonly recording: InputRecording;
|
|
132
|
+
/** Ticks recorded so far. */
|
|
133
|
+
readonly ticks: number;
|
|
134
|
+
}
|
|
135
|
+
export interface InputPlaybackOptions {
|
|
136
|
+
/** Ticks fed per `step()`. Default 1. See `InputPlayback.speed`. */
|
|
137
|
+
speed?: number;
|
|
138
|
+
/**
|
|
139
|
+
* The clock recorded pointer `time`s replay on (ws/input-7). Default: `clock` when given, else
|
|
140
|
+
* the clock of the gestures linked to the input when the playback is made (`Gestures.now`),
|
|
141
|
+
* else the linked look's (`Look.clock`, ws/input-8), else `performance.now()`. On a
|
|
142
|
+
* `createTickClock()` the replay is the same on every tick index whatever the wall time
|
|
143
|
+
* between `step()`s.
|
|
144
|
+
*/
|
|
145
|
+
now?: () => number;
|
|
146
|
+
/**
|
|
147
|
+
* A tick clock the playback drives (ws/input-9): every fed tick advances it by `tickMs`, after
|
|
148
|
+
* the tick's events are fed and before its `update()`, as a fixed step does live. So
|
|
149
|
+
* `speed: 4` advances it 4 × `tickMs` per `step()`, and a long-press fires on the same recorded
|
|
150
|
+
* tick at any speed. Pass the clock the input's gestures and look run on, and stop advancing it
|
|
151
|
+
* from the game's own step while the playback is installed (`InputPlayback.clock` says which
|
|
152
|
+
* clock it drives). Omitted, the playback advances nothing (the default, as before).
|
|
153
|
+
*/
|
|
154
|
+
clock?: TickClock;
|
|
155
|
+
/**
|
|
156
|
+
* Ms a fed tick advances `clock` by. Default: the recording's `tickMs`, else the input's
|
|
157
|
+
* `Input.tickMs` (for recordings made before ws/input-9).
|
|
158
|
+
*/
|
|
159
|
+
tickMs?: number;
|
|
160
|
+
}
|
|
161
|
+
export interface InputPlayback {
|
|
162
|
+
/**
|
|
163
|
+
* Feed the next tick's events into the input (then the caller runs `input.update()`). With
|
|
164
|
+
* `speed` above 1, the extra ticks are fed and updated inside the call, so the input
|
|
165
|
+
* fast-forwards; the caller's game logic only sees the last one. Returns false when the
|
|
166
|
+
* recording is finished and nothing was fed.
|
|
167
|
+
*/
|
|
168
|
+
step(): boolean;
|
|
169
|
+
/** True once every recorded tick has been fed. */
|
|
170
|
+
readonly done: boolean;
|
|
171
|
+
/** The next tick to feed. */
|
|
172
|
+
readonly tick: number;
|
|
173
|
+
/** Total ticks in the recording. */
|
|
174
|
+
readonly length: number;
|
|
175
|
+
/** Jump to a tick. The input gets `releaseAll()` first; skipped ticks are not fed. */
|
|
176
|
+
seek(tick: number): void;
|
|
177
|
+
/** Ticks per `step()` (an integer of at least 1). */
|
|
178
|
+
speed: number;
|
|
179
|
+
/** The tick clock this playback advances per fed tick (`InputPlaybackOptions.clock`), or null. */
|
|
180
|
+
readonly clock: TickClock | null;
|
|
181
|
+
/** Ms each fed tick advances `clock` by (`InputPlaybackOptions.tickMs`, resolved). */
|
|
182
|
+
readonly tickMs: number;
|
|
183
|
+
/** Uninstall the hook; `input.playback` is null again. */
|
|
184
|
+
detach(): void;
|
|
185
|
+
}
|
|
186
|
+
/** Called when a recording does not have the expected shape. */
|
|
187
|
+
export declare class InputRecordingError extends Error {
|
|
188
|
+
constructor(message: string);
|
|
189
|
+
}
|
|
190
|
+
/** Total ticks a recording covers. */
|
|
191
|
+
export declare function recordingLength(rec: InputRecording): number;
|
|
192
|
+
/**
|
|
193
|
+
* Record everything `input` is fed. The recorder installs a feed hook and closes one tick per
|
|
194
|
+
* `input.update()`; `stop()` removes it. `input.recorder` points at it meanwhile.
|
|
195
|
+
*/
|
|
196
|
+
export declare function createInputRecorder<A extends string>(input: Input<A>, opts?: InputRecorderOptions): InputRecorder;
|
|
197
|
+
/**
|
|
198
|
+
* Replay `recording` into `input`. Call `step()` before each `input.update()`; the input's
|
|
199
|
+
* `getGamepads` result is replaced by the recorded snapshot while the playback is installed.
|
|
200
|
+
* `input.playback` points at it until `detach()`.
|
|
201
|
+
*/
|
|
202
|
+
export declare function createInputPlayback<A extends string>(input: Input<A>, recording: InputRecording, opts?: InputPlaybackOptions): InputPlayback;
|
|
203
|
+
/** The recording as a JSON string. */
|
|
204
|
+
export declare function serializeRecording(rec: InputRecording): string;
|
|
205
|
+
/**
|
|
206
|
+
* Parse and validate a recording (a JSON string or an already parsed value). Throws
|
|
207
|
+
* `InputRecordingError` on a wrong version or a malformed tick.
|
|
208
|
+
*/
|
|
209
|
+
export declare function parseRecording(source: string | unknown): InputRecording;
|