@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,327 @@
|
|
|
1
|
+
import { type InputClock } from './clock.js';
|
|
2
|
+
import type { GyroSource } from './gyro.js';
|
|
3
|
+
import { type PointerDispatcher } from './pointer-dispatch.js';
|
|
4
|
+
import type { GamepadLike, PointerTransform } from './types.js';
|
|
5
|
+
/** Where the move stick lives on a touch screen. */
|
|
6
|
+
export type MoveZone = 'left' | 'right' | 'none';
|
|
7
|
+
export interface LookTouchOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The half of the attached element where a touch becomes the move stick (`'none'`: every touch
|
|
10
|
+
* looks). Default `'left'`.
|
|
11
|
+
*/
|
|
12
|
+
moveZone?: MoveZone;
|
|
13
|
+
/** Stick deadzone as a fraction of `radius` (0..1). Default 0.12. */
|
|
14
|
+
deadzone?: number;
|
|
15
|
+
/** CSS px from the stick's origin to full deflection; the stick clamps there. Default 56. */
|
|
16
|
+
radius?: number;
|
|
17
|
+
/** Radians per CSS px a look touch drags. Default: `LookOptions.sensitivity`. */
|
|
18
|
+
sensitivity?: number;
|
|
19
|
+
}
|
|
20
|
+
/** Key codes (`KeyboardEvent.code`) that move. No defaults: the game names them. */
|
|
21
|
+
export interface LookKeys {
|
|
22
|
+
forward?: readonly string[];
|
|
23
|
+
back?: readonly string[];
|
|
24
|
+
left?: readonly string[];
|
|
25
|
+
right?: readonly string[];
|
|
26
|
+
}
|
|
27
|
+
/** Which pad control zooms. */
|
|
28
|
+
export type LookZoomPad = 'rightStickY' | 'shoulders' | 'none';
|
|
29
|
+
/**
|
|
30
|
+
* How the mouse (and pen) look (ws/input-3). `'locked'`: pointer-locked `movementX/Y` after
|
|
31
|
+
* `request()`. `'orbit'`: a button-down drag on the attached element turns the view at the same
|
|
32
|
+
* `sensitivity`, no lock is ever requested, and the drag never reaches the linked `Gestures`.
|
|
33
|
+
*/
|
|
34
|
+
export type LookMode = 'locked' | 'orbit';
|
|
35
|
+
export interface LookZoomOptions {
|
|
36
|
+
/** The mouse wheel zooms (one notch, 100 px or `stepPx`, is 1). Default true. */
|
|
37
|
+
wheel?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* A second finger beside a look drag pinches: the change in finger distance over `stepPx` is
|
|
40
|
+
* the zoom. Default true.
|
|
41
|
+
*/
|
|
42
|
+
pinch?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* `'rightStickY'`: the right stick's vertical axis zooms (`PAD_ZOOM_PER_S` units per second at
|
|
45
|
+
* full deflection) and no longer pitches the look. `'shoulders'`: the shoulder buttons (standard
|
|
46
|
+
* mapping 4 and 5) read -1 and +1 per tick while held. Default `'none'`.
|
|
47
|
+
*/
|
|
48
|
+
pad?: LookZoomPad;
|
|
49
|
+
/** CSS px per zoom unit for the wheel (`deltaMode` pixels) and the pinch. Default 100. */
|
|
50
|
+
stepPx?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface LookOptions {
|
|
53
|
+
/** The zoom axis (`Look.zoom`). Default: wheel and pinch on, pad `'none'`. */
|
|
54
|
+
zoom?: LookZoomOptions;
|
|
55
|
+
/** Radians per CSS px of pointer-locked mouse movement. Default 0.0025. */
|
|
56
|
+
sensitivity?: number;
|
|
57
|
+
/** Radians per second at full right-stick deflection. Default 3. */
|
|
58
|
+
padSensitivity?: number;
|
|
59
|
+
/** Flip vertical look (mouse, touch and stick). Default false. */
|
|
60
|
+
invertY?: boolean;
|
|
61
|
+
/** The touch layout. */
|
|
62
|
+
touch?: LookTouchOptions;
|
|
63
|
+
/** Stick deadzone (0..1, radial) for both pad sticks. Default 0.15. */
|
|
64
|
+
padDeadzone?: number;
|
|
65
|
+
/** Which pad; omitted = the first connected one. */
|
|
66
|
+
pad?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Gamepad source. Default `navigator.getGamepads()` (guarded); linked to an `Input`, the
|
|
69
|
+
* default is the input's pads for the tick instead (ws/input-9), so a recording captures and a
|
|
70
|
+
* playback replaces the look's sticks with the rest. A source given here is always read
|
|
71
|
+
* as is, linked or not, and is not replaced by a playback.
|
|
72
|
+
*/
|
|
73
|
+
getGamepads?: () => readonly (GamepadLike | null)[];
|
|
74
|
+
/**
|
|
75
|
+
* Keys that move (read through the linked `Input`'s raw key state; `Look` has no key listener
|
|
76
|
+
* of its own). `forward` is `move.y` +1, `right` is `move.x` +1.
|
|
77
|
+
*/
|
|
78
|
+
keys?: LookKeys;
|
|
79
|
+
/** While true everything reads zero and the pointer lock is released. `Input.setLook` replaces it. */
|
|
80
|
+
blocked?: () => boolean;
|
|
81
|
+
/** Clock in ms, for the stick's `dt`. Default `performance.now()`. The older spelling of `clock`; `clock` wins. */
|
|
82
|
+
now?: () => number;
|
|
83
|
+
/**
|
|
84
|
+
* The clock the look is timed on (ws/input-8): the pad stick's turn and zoom rate (`dt`) and
|
|
85
|
+
* `onTap`'s `maxMs`. Pass the gestures' `createTickClock()` so both run on game time.
|
|
86
|
+
* Default `performance.now()`.
|
|
87
|
+
*/
|
|
88
|
+
clock?: InputClock;
|
|
89
|
+
/**
|
|
90
|
+
* A mouse (or pen) `pointerdown` on the attached element while the lock is not held calls
|
|
91
|
+
* `request()`, so the first click into the game locks the pointer and, after the player
|
|
92
|
+
* presses Escape, the next click locks it again. Touches never lock. Blocked, nothing is
|
|
93
|
+
* requested. Default false: the game calls `request()` from its own click handler.
|
|
94
|
+
*/
|
|
95
|
+
lockOnFirstClick?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* `'locked'` (default) or `'orbit'` (see `LookMode`). In orbit mode `lockOnFirstClick` is
|
|
98
|
+
* ignored (with one warning) and `request()` resolves false without asking. `setMode` switches
|
|
99
|
+
* at runtime.
|
|
100
|
+
*/
|
|
101
|
+
mode?: LookMode;
|
|
102
|
+
/** Gyro aim (ws/input-5): its delta is added to the look every tick. See `createGyroSource`. */
|
|
103
|
+
gyro?: GyroSource;
|
|
104
|
+
/** The tap `onTap` reports (ws/input-5). */
|
|
105
|
+
tap?: LookTapOptions;
|
|
106
|
+
}
|
|
107
|
+
/** `Look.onTap` thresholds (ws/input-5). */
|
|
108
|
+
export interface LookTapOptions {
|
|
109
|
+
/** Most CSS px a pointer may travel (summed) and still tap. Default 10, the gestures' pan threshold. */
|
|
110
|
+
maxMove?: number;
|
|
111
|
+
/** Longest press, ms on the look's clock, that still taps. Default 450, the gestures' long press. */
|
|
112
|
+
maxMs?: number;
|
|
113
|
+
}
|
|
114
|
+
/** A `Look.onTap` listener: (x, y) in the router's units (through the pointer transform). */
|
|
115
|
+
export type LookTapListener = (x: number, y: number, device: 'mouse' | 'touch' | 'pen') => void;
|
|
116
|
+
/** `Look` events. */
|
|
117
|
+
export interface LookEvents {
|
|
118
|
+
/** The pointer lock on the attached element was taken (`true`) or lost (`false`). */
|
|
119
|
+
lockChange: boolean;
|
|
120
|
+
}
|
|
121
|
+
/** The touch move stick, client CSS px (for drawing it). */
|
|
122
|
+
export interface LookStick {
|
|
123
|
+
active: boolean;
|
|
124
|
+
/** Where the finger landed. */
|
|
125
|
+
originX: number;
|
|
126
|
+
originY: number;
|
|
127
|
+
/** Where the finger is now, clamped to `radius` from the origin. */
|
|
128
|
+
x: number;
|
|
129
|
+
y: number;
|
|
130
|
+
}
|
|
131
|
+
/** Zoom units per second the right stick reports at full deflection (`zoom.pad: 'rightStickY'`). */
|
|
132
|
+
export declare const PAD_ZOOM_PER_S = 4;
|
|
133
|
+
/**
|
|
134
|
+
* First- and third-person look and move. Each tick it reports `look` (yaw and pitch deltas in
|
|
135
|
+
* radians) and `move` (x, y in -1..1) from whichever device the player uses: pointer-locked mouse,
|
|
136
|
+
* a two-zone touch layout (a virtual move stick in one half, look drags anywhere else), the pad's
|
|
137
|
+
* sticks and the move keys. Link it with `input.setLook(look)` so it shares `blocked()`, attaches
|
|
138
|
+
* with `Input.attach` and advances in `Input.update()`.
|
|
139
|
+
*
|
|
140
|
+
* Signs: `look.dx` > 0 turns right, `look.dy` > 0 looks up (`invertY` flips it); `move.x` > 0 is
|
|
141
|
+
* right, `move.y` > 0 is forward. `zoom` > 0 is closer (wheel up, fingers apart). No allocation
|
|
142
|
+
* per tick.
|
|
143
|
+
*/
|
|
144
|
+
export declare class Look {
|
|
145
|
+
/** This tick's look delta, radians. */
|
|
146
|
+
readonly look: {
|
|
147
|
+
dx: number;
|
|
148
|
+
dy: number;
|
|
149
|
+
};
|
|
150
|
+
/** This tick's move, each axis -1..1, length at most 1. */
|
|
151
|
+
readonly move: {
|
|
152
|
+
x: number;
|
|
153
|
+
y: number;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* This tick's zoom: wheel notches, pinch distance over `stepPx`, or stick units; positive is
|
|
157
|
+
* closer. `Follow` reads it when linked.
|
|
158
|
+
*/
|
|
159
|
+
zoom: number;
|
|
160
|
+
/** The touch move stick (client CSS px). */
|
|
161
|
+
readonly stick: LookStick;
|
|
162
|
+
/** True while the attached element holds the pointer lock. */
|
|
163
|
+
locked: boolean;
|
|
164
|
+
blocked: () => boolean;
|
|
165
|
+
/** Raw key state the move keys are read from; `Input.setLook` installs its own. */
|
|
166
|
+
keyHeld: ((code: string) => boolean) | null;
|
|
167
|
+
sensitivity: number;
|
|
168
|
+
padSensitivity: number;
|
|
169
|
+
invertY: boolean;
|
|
170
|
+
moveZone: MoveZone;
|
|
171
|
+
deadzone: number;
|
|
172
|
+
radius: number;
|
|
173
|
+
touchSensitivity: number | undefined;
|
|
174
|
+
padDeadzone: number;
|
|
175
|
+
keys: LookKeys;
|
|
176
|
+
zoomWheel: boolean;
|
|
177
|
+
zoomPinch: boolean;
|
|
178
|
+
zoomPad: LookZoomPad;
|
|
179
|
+
zoomStepPx: number;
|
|
180
|
+
/** Gyro aim added to the look each tick (`LookOptions.gyro`), or null. */
|
|
181
|
+
gyro: GyroSource | null;
|
|
182
|
+
/** `onTap` thresholds. */
|
|
183
|
+
tapMaxMove: number;
|
|
184
|
+
tapMaxMs: number;
|
|
185
|
+
/**
|
|
186
|
+
* Client → game-space mapping for `onTap` coordinates; `Input.setLook` and
|
|
187
|
+
* `Input.setPointerTransform` keep it in step with the input's. `null`: the dispatcher's units.
|
|
188
|
+
*/
|
|
189
|
+
pointerTransform: PointerTransform | null;
|
|
190
|
+
private readonly tapFns;
|
|
191
|
+
/** The pointer that may still tap, or null. */
|
|
192
|
+
private tapId;
|
|
193
|
+
private tapDevice;
|
|
194
|
+
private tapAt;
|
|
195
|
+
private tapLastX;
|
|
196
|
+
private tapLastY;
|
|
197
|
+
private tapTravel;
|
|
198
|
+
private readonly gyroOut;
|
|
199
|
+
private readonly stickOut;
|
|
200
|
+
private readonly stickOpts;
|
|
201
|
+
private readonly pad;
|
|
202
|
+
private readonly getGamepads;
|
|
203
|
+
private readonly now;
|
|
204
|
+
/** The clock (`LookOptions.clock`, or one wrapping `now`, or the wall clock). */
|
|
205
|
+
readonly clock: InputClock;
|
|
206
|
+
private readonly events;
|
|
207
|
+
private lastTime;
|
|
208
|
+
private mouseX;
|
|
209
|
+
private mouseY;
|
|
210
|
+
private touchX;
|
|
211
|
+
private touchY;
|
|
212
|
+
private moveId;
|
|
213
|
+
private lookId;
|
|
214
|
+
private lookLastX;
|
|
215
|
+
private lookLastY;
|
|
216
|
+
private pinchId;
|
|
217
|
+
private pinchX;
|
|
218
|
+
private pinchY;
|
|
219
|
+
private pinchDist;
|
|
220
|
+
private zoomAcc;
|
|
221
|
+
private target;
|
|
222
|
+
private detachFn;
|
|
223
|
+
private readonly lockOnFirstClick;
|
|
224
|
+
private modeValue;
|
|
225
|
+
private warnedLockOnFirstClick;
|
|
226
|
+
/** The orbit drag in progress (client CSS px), or NaN when none. */
|
|
227
|
+
private orbitX;
|
|
228
|
+
private orbitY;
|
|
229
|
+
/**
|
|
230
|
+
* True once a linked `Input` feeds the orbit drag through its own pointer feed (so the drag is
|
|
231
|
+
* recorded and replayed); the DOM listener here then leaves mouse and pen alone. Set by
|
|
232
|
+
* `Input.setLook`.
|
|
233
|
+
*/
|
|
234
|
+
orbitFromInput: boolean;
|
|
235
|
+
/**
|
|
236
|
+
* The linked `Input`'s pads for this tick (ws/input-9), read instead of the default
|
|
237
|
+
* `navigator.getGamepads()` so a playback's recorded pads turn the look. Ignored when
|
|
238
|
+
* `LookOptions.getGamepads` was given. Set by `Input.setLook`.
|
|
239
|
+
*/
|
|
240
|
+
padsFromInput: (() => readonly (GamepadLike | null)[]) | null;
|
|
241
|
+
/** True when `LookOptions.getGamepads` was given: it wins over `padsFromInput`. */
|
|
242
|
+
private readonly ownPads;
|
|
243
|
+
constructor(opts?: LookOptions);
|
|
244
|
+
/**
|
|
245
|
+
* Call `fn` on a tap (ws/input-5): a primary-button press and release that travels at most
|
|
246
|
+
* `tap.maxMove` px within `tap.maxMs`, on a pointer the look took (an orbit-mode mouse or pen,
|
|
247
|
+
* a look-drag touch) or, in locked mode, on any pointer over the attached element except the
|
|
248
|
+
* move-stick touch. A second finger landing cancels it. (x, y) are in the router's units (the
|
|
249
|
+
* pointer transform's game space). Returns the remover.
|
|
250
|
+
*/
|
|
251
|
+
onTap(fn: LookTapListener): () => void;
|
|
252
|
+
/** The look mode (`LookOptions.mode`); change it with `setMode`. */
|
|
253
|
+
get mode(): LookMode;
|
|
254
|
+
/**
|
|
255
|
+
* Switch between pointer-locked and orbit look at runtime. Into orbit the lock is released;
|
|
256
|
+
* into locked a drag in progress ends (the game asks for the lock from its next click).
|
|
257
|
+
*/
|
|
258
|
+
setMode(mode: LookMode): void;
|
|
259
|
+
/** True when the look takes mouse and pen pointers for itself (orbit mode), so gestures must not. */
|
|
260
|
+
claimsPointer(device: 'mouse' | 'touch' | 'pen'): boolean;
|
|
261
|
+
/** True while an orbit drag is in progress. */
|
|
262
|
+
get orbiting(): boolean;
|
|
263
|
+
/** Subscribe to `lockChange`. Returns the unsubscriber. */
|
|
264
|
+
on<K extends keyof LookEvents>(type: K, fn: (payload: LookEvents[K]) => void): () => void;
|
|
265
|
+
/** Shorthand for `on('lockChange', fn)`. */
|
|
266
|
+
onLockChange(fn: (locked: boolean) => void): () => void;
|
|
267
|
+
/** Advance one tick. `Input.update()` calls this when linked; don't call it twice. */
|
|
268
|
+
update(): void;
|
|
269
|
+
private padState;
|
|
270
|
+
/** Pointer-locked mouse movement, CSS px (`movementX/Y`). The DOM listener feeds it only while locked. */
|
|
271
|
+
mouseMove(dx: number, dy: number): void;
|
|
272
|
+
/**
|
|
273
|
+
* An orbit drag began at client (x, y) (mouse or pen, primary button). Nothing in locked mode.
|
|
274
|
+
* A linked `Input` feeds these from its own `buttonDown`, `pointerAt` and `buttonUp`.
|
|
275
|
+
*/
|
|
276
|
+
orbitDown(x: number, y: number): void;
|
|
277
|
+
/** The orbit pointer moved to client (x, y): the delta turns the view at `sensitivity`. */
|
|
278
|
+
orbitMove(x: number, y: number): void;
|
|
279
|
+
/** The orbit drag ended. */
|
|
280
|
+
orbitUp(): void;
|
|
281
|
+
/** Zoom units (wheel notches) to add to this tick's `zoom`; positive is closer. */
|
|
282
|
+
wheel(units: number): void;
|
|
283
|
+
/**
|
|
284
|
+
* A touch went down at client (x, y); `inMoveZone` says whether it landed in the move zone. A
|
|
285
|
+
* touch that neither takes the stick nor starts a look drag pinches against the drag in progress
|
|
286
|
+
* when `zoom.pinch` is on.
|
|
287
|
+
*/
|
|
288
|
+
touchDown(id: number, x: number, y: number, inMoveZone: boolean): void;
|
|
289
|
+
touchMove(id: number, x: number, y: number): void;
|
|
290
|
+
touchUp(id: number): void;
|
|
291
|
+
/** The distance between the look and pinch fingers changed: fingers apart is closer. */
|
|
292
|
+
private pinchMoved;
|
|
293
|
+
/** Drop every touch (blur, hidden tab, blocked). Fingers still down are ignored until lifted. */
|
|
294
|
+
cancelAll(): void;
|
|
295
|
+
private voidTouches;
|
|
296
|
+
/**
|
|
297
|
+
* Ask for the pointer lock on the attached element. Browsers grant it only inside a user
|
|
298
|
+
* gesture, so call this from a click or tap. Resolves with whether the lock is held; never
|
|
299
|
+
* rejects. False when detached, blocked or unsupported.
|
|
300
|
+
*/
|
|
301
|
+
request(): Promise<boolean>;
|
|
302
|
+
/** Give the pointer lock back, if the attached element holds it. */
|
|
303
|
+
release(): void;
|
|
304
|
+
private syncLock;
|
|
305
|
+
/**
|
|
306
|
+
* Listen on the element: touch pointers (zones, pinch), the wheel (passive), pointer-locked
|
|
307
|
+
* mouse movement and the lock's change and error events. `Input.setLook` calls this from
|
|
308
|
+
* `Input.attach`.
|
|
309
|
+
*/
|
|
310
|
+
attach(target: HTMLElement, dispatcher?: PointerDispatcher): void;
|
|
311
|
+
/** The dispatcher the look consumes from while attached (shared or private). */
|
|
312
|
+
private dispatcher;
|
|
313
|
+
/**
|
|
314
|
+
* The dispatcher consumer: touch pointers feed the zones and pinch; in orbit mode a mouse or
|
|
315
|
+
* pen primary button claims its pointer (so gestures and the router leave it alone) and, unless
|
|
316
|
+
* a linked `Input` feeds the drag, drives the orbit.
|
|
317
|
+
*/
|
|
318
|
+
private readonly consumer;
|
|
319
|
+
/** A pointer went down: it may tap if it is the only one and the look takes it (see `onTap`). */
|
|
320
|
+
private tapDown;
|
|
321
|
+
private tapMove;
|
|
322
|
+
private tapUp;
|
|
323
|
+
/** Stop listening, release the lock and drop every touch. */
|
|
324
|
+
detach(): void;
|
|
325
|
+
}
|
|
326
|
+
/** `new Look(opts)`: look controls, on `opts.clock` when given (ws/input-8). */
|
|
327
|
+
export declare function createLook(opts?: LookOptions): Look;
|