1681-engine 0.5.8 → 0.5.10
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 +95 -0
- package/README.md +3 -0
- package/dist/1681-engine.js +526 -409
- package/dist/ambient/ColorGrade.js +0 -1
- package/dist/ambient/DayClock.js +0 -1
- package/dist/ambient/WeatherLayer.js +0 -1
- package/dist/ambient/grade.js +0 -1
- package/dist/ambient/life/Birds.js +73 -0
- package/dist/ambient/life/Butterflies.js +43 -0
- package/dist/ambient/life/ChimneySmoke.js +50 -0
- package/dist/ambient/life/Drift.js +75 -0
- package/dist/ambient/life/Fireflies.js +52 -0
- package/dist/ambient/life/lifeMotion.js +49 -0
- package/dist/ambient/weather.js +0 -1
- package/dist/anim/AnimStateMachine.js +0 -1
- package/dist/anim/Animator.js +0 -1
- package/dist/anim/animStateCompile.js +0 -1
- package/dist/anim/animStateSystem.js +0 -1
- package/dist/anim/animationSystem.js +0 -1
- package/dist/anim/asepriteSlices.js +0 -1
- package/dist/anim/asepriteTags.js +0 -1
- package/dist/anim/parseAseprite.js +0 -1
- package/dist/assets/AssetLoader.js +177 -34
- package/dist/assets/Prepainter.js +61 -0
- package/dist/assets/loadAseprite.js +0 -1
- package/dist/assets/takeCleanerWorker-DTcI_Jqr.js +0 -1
- package/dist/assets/textureAtlas.js +58 -0
- package/dist/assets/workerPainter.js +39 -0
- package/dist/audio/Footsteps.js +0 -1
- package/dist/audio/MusicPlayer.js +0 -1
- package/dist/audio/SoundEngine.js +13 -7
- package/dist/audio/cleanTake.js +0 -1
- package/dist/audio/music/ElementVoice.js +0 -1
- package/dist/audio/music/GraphVoice.js +0 -1
- package/dist/audio/music/MusicChannel.js +0 -1
- package/dist/audio/music/musicVoice.js +0 -1
- package/dist/audio/sampleBank.js +0 -1
- package/dist/audio/soundTable.js +0 -1
- package/dist/audio/synth.js +0 -1
- package/dist/cjs/electron/electronLike.d.ts +55 -0
- package/dist/cjs/electron/electronLike.js +7 -0
- package/dist/cjs/electron/index.d.ts +14 -0
- package/dist/cjs/electron/index.js +20 -0
- package/dist/cjs/electron/lockdown.d.ts +33 -0
- package/dist/cjs/electron/lockdown.js +69 -0
- package/dist/cjs/electron/lockdownRules.d.ts +28 -0
- package/dist/cjs/electron/lockdownRules.js +61 -0
- package/dist/cjs/electron/sessionStore.d.ts +40 -0
- package/dist/cjs/electron/sessionStore.js +77 -0
- package/dist/cjs/electron/shellId.d.ts +22 -0
- package/dist/cjs/electron/shellId.js +31 -0
- package/dist/cjs/electron/webFiles.d.ts +13 -0
- package/dist/cjs/electron/webFiles.js +52 -0
- package/dist/cjs/electron/webPatcher.d.ts +80 -0
- package/dist/cjs/electron/webPatcher.js +216 -0
- package/dist/cjs/electron/webPointers.d.ts +19 -0
- package/dist/cjs/electron/webPointers.js +35 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/updates/index.d.ts +8 -0
- package/dist/cjs/updates/index.js +21 -0
- package/dist/cjs/updates/manifest.d.ts +73 -0
- package/dist/cjs/updates/manifest.js +67 -0
- package/dist/cjs/updates/pickUpdate.d.ts +42 -0
- package/dist/cjs/updates/pickUpdate.js +52 -0
- package/dist/cjs/updates/webPlan.d.ts +20 -0
- package/dist/cjs/updates/webPlan.js +34 -0
- package/dist/core/BitmapLabel.js +0 -1
- package/dist/core/Camera.js +1 -2
- package/dist/core/Clock.js +31 -21
- package/dist/core/Graphics.js +0 -1
- package/dist/core/Group.js +0 -1
- package/dist/core/Image.js +0 -1
- package/dist/core/ObjectFactory.js +0 -1
- package/dist/core/Pointer.js +46 -24
- package/dist/core/Rectangle.js +0 -1
- package/dist/core/Stage.js +5 -6
- package/dist/core/Text.js +0 -1
- package/dist/core/TextureRegistry.js +54 -24
- package/dist/core/Timeline.js +0 -1
- package/dist/core/TimelineBuilder.js +0 -1
- package/dist/core/TimelineChild.js +0 -1
- package/dist/core/Tweener.js +0 -1
- package/dist/core/atlas.js +0 -1
- package/dist/core/atlasPlan.js +0 -1
- package/dist/core/blendLayer.js +11 -0
- package/dist/core/eases.js +0 -1
- package/dist/core/gameObject.js +22 -20
- package/dist/core/pixelZoom.js +43 -0
- package/dist/core/pixiPatches.js +0 -1
- package/dist/core/runDue.js +28 -0
- package/dist/core/silhouette.js +49 -0
- package/dist/core/timelinePlace.js +0 -1
- package/dist/core/tweenProps.js +0 -1
- package/dist/debug/DebugOverlay.js +0 -1
- package/dist/debug/DrawCallCounter.js +15 -12
- package/dist/debug/ErrorLog.js +0 -1
- package/dist/debug/FrameStats.js +0 -1
- package/dist/debug/inspectWorld.js +0 -1
- package/dist/diagnostics/ErrorDeduper.js +0 -1
- package/dist/diagnostics/FrameSampler.js +0 -1
- package/dist/diagnostics/bootWatch.js +0 -1
- package/dist/diagnostics/captureErrors.js +0 -1
- package/dist/diagnostics/contextLoss.js +0 -1
- package/dist/diagnostics/frameStats.js +0 -1
- package/dist/diagnostics/gpuInfo.js +0 -1
- package/dist/diagnostics/renderGuard.js +0 -1
- package/dist/ecs/SparseSet.js +0 -1
- package/dist/ecs/World.js +0 -1
- package/dist/ecs/fields.js +0 -1
- package/dist/electron/lockdown.js +31 -0
- package/dist/electron/lockdownRules.js +42 -0
- package/dist/electron/sessionStore.js +48 -0
- package/dist/electron/shellId.js +18 -0
- package/dist/electron/webFiles.js +36 -0
- package/dist/electron/webPatcher.js +147 -0
- package/dist/electron/webPointers.js +25 -0
- package/dist/electron.js +19 -0
- package/dist/engine/Engine.js +42 -18
- package/dist/engine/FixedLoop.js +0 -1
- package/dist/engine/HiddenPause.js +27 -0
- package/dist/engine/Scene.js +0 -1
- package/dist/engine/SceneManager.js +0 -1
- package/dist/events/EventBus.js +0 -1
- package/dist/fx/Afterimages.js +82 -0
- package/dist/fx/FloatingText.js +0 -1
- package/dist/fx/hitStop.js +0 -1
- package/dist/fx/viewCull.js +0 -1
- package/dist/i18n/Translator.js +0 -1
- package/dist/i18n/extractStrings.js +0 -1
- package/dist/i18n/formatMessage.js +0 -1
- package/dist/input/Actions.js +29 -21
- package/dist/input/AimGesture.js +0 -1
- package/dist/input/Keyboard.js +0 -1
- package/dist/input/Keymap.js +0 -1
- package/dist/input/TargetLock.js +0 -1
- package/dist/input/aimAxis.js +0 -1
- package/dist/input/haptics.js +50 -0
- package/dist/input/keyChord.js +0 -1
- package/dist/input/longPress.js +0 -1
- package/dist/input/rumble.js +42 -0
- package/dist/input/stickAxis.js +0 -1
- package/dist/input/touchDetect.js +0 -1
- package/dist/light/LightLayer.js +0 -1
- package/dist/nav/MinHeap.js +0 -1
- package/dist/nav/findPath.js +0 -1
- package/dist/nav/navGrid.js +0 -1
- package/dist/nav/nearestOpen.js +0 -1
- package/dist/nav/straightenPath.js +0 -1
- package/dist/net/ApiClient.js +96 -0
- package/dist/net/Connection.js +39 -16
- package/dist/net/InterpolationBuffer.js +0 -1
- package/dist/net/PredictedMover.js +0 -1
- package/dist/net/Room.js +0 -1
- package/dist/net/RoomHost.js +0 -1
- package/dist/net/cadence.js +0 -1
- package/dist/net/constants.js +0 -1
- package/dist/net/lobby/LobbyClient.js +0 -1
- package/dist/net/lobby/LobbyHost.js +0 -1
- package/dist/net/lobby/LobbyRooms.js +0 -1
- package/dist/net/lobby/Matchmaker.js +0 -1
- package/dist/net/movement.js +40 -39
- package/dist/net/protocol.js +0 -1
- package/dist/net/reconnect.js +10 -0
- package/dist/net/serverClock.js +0 -1
- package/dist/net/snapshotCodec.js +0 -1
- package/dist/parallax/Parallax.js +0 -1
- package/dist/parallax/ParallaxLayer.js +0 -1
- package/dist/parallax/parallaxMath.js +0 -1
- package/dist/particles/Emitter.js +0 -1
- package/dist/particles/ParticleBudget.js +0 -1
- package/dist/particles/ParticleSim.js +0 -1
- package/dist/particles/particleCurves.js +0 -1
- package/dist/particles/particleSampling.js +0 -1
- package/dist/physics/Body.js +0 -1
- package/dist/physics/BroadPhase.js +0 -1
- package/dist/physics/Contact.js +0 -1
- package/dist/physics/ContactSolver.js +0 -1
- package/dist/physics/PhysicsWorld.js +0 -1
- package/dist/physics/SpatialHash.js +0 -1
- package/dist/physics/collide.js +0 -1
- package/dist/physics/collidePolygon.js +0 -1
- package/dist/physics/contactReport.js +0 -1
- package/dist/physics/drawColliders.js +0 -1
- package/dist/physics/physicsSystem.js +0 -1
- package/dist/physics/polygon.js +0 -1
- package/dist/physics/raycast.js +0 -1
- package/dist/physics/syncToBody.js +0 -1
- package/dist/physics/tileBodies.js +0 -1
- package/dist/physics/types.js +0 -1
- package/dist/pixel/Darkness.js +50 -47
- package/dist/pixel/DitherVignette.js +0 -1
- package/dist/pixel/Evaporation.js +0 -1
- package/dist/pixel/NightShade.js +0 -1
- package/dist/pixel/PixelLayer.js +0 -1
- package/dist/pixel/PixelMarks.js +99 -0
- package/dist/pixel/SwayProp.js +0 -1
- package/dist/pixel/aimPixels.js +67 -0
- package/dist/pixel/lifeArt.js +83 -0
- package/dist/pixel/lights.js +0 -1
- package/dist/pixel/nineSlice.js +0 -1
- package/dist/pixel/paintLayer.js +0 -1
- package/dist/pixel/palette.js +0 -1
- package/dist/pixel/pixel.js +0 -1
- package/dist/pixel/pixelPaint.js +27 -24
- package/dist/pixel/pixelParticles.js +35 -0
- package/dist/pixel/pixelTone.js +0 -1
- package/dist/pixel/propKit.js +0 -1
- package/dist/pixel/ramp.js +0 -1
- package/dist/pixel/selout.js +0 -1
- package/dist/pixel/spritePixels.js +0 -1
- package/dist/pixel/swayRig.js +0 -1
- package/dist/pixel/vignetteMask.js +0 -1
- package/dist/pixel/weatherArt.js +0 -1
- package/dist/pixel.js +82 -71
- package/dist/platform/appResume.js +18 -0
- package/dist/platform/fullscreen.js +52 -0
- package/dist/platform/orientation.js +26 -0
- package/dist/platform/pointerLock.js +37 -0
- package/dist/platform/reducedMotion.js +23 -0
- package/dist/platform/timeoutSignal.js +14 -0
- package/dist/platform/touch.js +0 -1
- package/dist/postfx/BloomFilter.js +0 -1
- package/dist/postfx/ChromaticAberrationFilter.js +0 -1
- package/dist/postfx/ColorAdjustFilter.js +0 -1
- package/dist/postfx/CrtFilter.js +0 -1
- package/dist/postfx/PixelateFilter.js +0 -1
- package/dist/postfx/PostFx.js +0 -1
- package/dist/postfx/ShockwaveFilter.js +0 -1
- package/dist/postfx/VignetteFilter.js +0 -1
- package/dist/postfx/fxAnimator.js +0 -1
- package/dist/postfx/fxShader.js +0 -1
- package/dist/postfx.js +0 -1
- package/dist/react/ChoiceDialog.js +0 -1
- package/dist/react/ConfirmButton.js +24 -0
- package/dist/react/ConfirmDialog.js +0 -1
- package/dist/react/Glyph.js +0 -1
- package/dist/react/Modal.js +0 -1
- package/dist/react/Panel.js +0 -1
- package/dist/react/PixelImage.js +0 -1
- package/dist/react/Select.js +0 -1
- package/dist/react/Slider.js +0 -1
- package/dist/react/SplitPane.js +0 -1
- package/dist/react/TabStrip.js +0 -1
- package/dist/react/TitleTips.js +0 -1
- package/dist/react/Tooltip.js +0 -1
- package/dist/react/UiProvider.js +0 -1
- package/dist/react/baseCss.js +1 -1
- package/dist/react/choiceStore.js +0 -1
- package/dist/react/classNames.js +0 -1
- package/dist/react/confirmStore.js +0 -1
- package/dist/react/labels.js +7 -7
- package/dist/react/placement.js +0 -1
- package/dist/react/useFillSheet.js +0 -1
- package/dist/react/useFitToViewport.js +0 -1
- package/dist/react/useJsonSelector.js +13 -0
- package/dist/react/usePicked.js +0 -1
- package/dist/react/useStore.js +0 -1
- package/dist/react/useViewport.js +0 -1
- package/dist/react.js +73 -69
- package/dist/rig/PosePlayer.js +0 -1
- package/dist/rig/RigView.js +0 -1
- package/dist/rig/Skeleton.js +0 -1
- package/dist/rig/humanoid.js +0 -1
- package/dist/rig/humanoid.json.js +0 -1
- package/dist/rig/humanoidPoses.js +0 -1
- package/dist/rig/poseMath.js +0 -1
- package/dist/rig/poses.json.js +0 -1
- package/dist/save/Autosaver.js +0 -1
- package/dist/save/MemoryBackend.js +0 -1
- package/dist/save/SaveStore.js +0 -1
- package/dist/save/WebStorageBackend.js +0 -1
- package/dist/save/checksum.js +0 -1
- package/dist/save/migrateSave.js +0 -1
- package/dist/settings.js +0 -1
- package/dist/tilemap/TilemapView.js +57 -33
- package/dist/tilemap/autotile.js +103 -0
- package/dist/tilemap/collision.js +29 -19
- package/dist/tilemap/ldtk.js +21 -0
- package/dist/tilemap/ldtkParse.js +191 -0
- package/dist/tilemap/tiled.js +0 -1
- package/dist/transitions/CrossfadeTransition.js +0 -1
- package/dist/transitions/DitherWipeTransition.js +0 -1
- package/dist/transitions/FadeTransition.js +0 -1
- package/dist/transitions/Letterbox.js +0 -1
- package/dist/transitions/ditherMask.js +0 -1
- package/dist/transitions/transitionTo.js +0 -1
- package/dist/transitions/tweenDone.js +0 -1
- package/dist/types/ambient/life/Birds.d.ts +50 -0
- package/dist/types/ambient/life/Birds.d.ts.map +1 -0
- package/dist/types/ambient/life/Butterflies.d.ts +32 -0
- package/dist/types/ambient/life/Butterflies.d.ts.map +1 -0
- package/dist/types/ambient/life/ChimneySmoke.d.ts +37 -0
- package/dist/types/ambient/life/ChimneySmoke.d.ts.map +1 -0
- package/dist/types/ambient/life/Drift.d.ts +58 -0
- package/dist/types/ambient/life/Drift.d.ts.map +1 -0
- package/dist/types/ambient/life/Fireflies.d.ts +43 -0
- package/dist/types/ambient/life/Fireflies.d.ts.map +1 -0
- package/dist/types/ambient/life/lifeMotion.d.ts +63 -0
- package/dist/types/ambient/life/lifeMotion.d.ts.map +1 -0
- package/dist/types/assets/AssetLoader.d.ts +83 -8
- package/dist/types/assets/AssetLoader.d.ts.map +1 -1
- package/dist/types/assets/Prepainter.d.ts +64 -0
- package/dist/types/assets/Prepainter.d.ts.map +1 -0
- package/dist/types/assets/textureAtlas.d.ts +35 -0
- package/dist/types/assets/textureAtlas.d.ts.map +1 -0
- package/dist/types/assets/workerPainter.d.ts +21 -0
- package/dist/types/assets/workerPainter.d.ts.map +1 -0
- package/dist/types/audio/SoundEngine.d.ts +5 -0
- package/dist/types/audio/SoundEngine.d.ts.map +1 -1
- package/dist/types/core/Camera.d.ts +1 -1
- package/dist/types/core/Camera.d.ts.map +1 -1
- package/dist/types/core/Clock.d.ts +14 -2
- package/dist/types/core/Clock.d.ts.map +1 -1
- package/dist/types/core/Pointer.d.ts +18 -0
- package/dist/types/core/Pointer.d.ts.map +1 -1
- package/dist/types/core/Stage.d.ts.map +1 -1
- package/dist/types/core/TextureRegistry.d.ts +39 -0
- package/dist/types/core/TextureRegistry.d.ts.map +1 -1
- package/dist/types/core/blendLayer.d.ts +23 -0
- package/dist/types/core/blendLayer.d.ts.map +1 -0
- package/dist/types/core/gameObject.d.ts.map +1 -1
- package/dist/types/core/pixelZoom.d.ts +45 -0
- package/dist/types/core/pixelZoom.d.ts.map +1 -0
- package/dist/types/core/runDue.d.ts +15 -0
- package/dist/types/core/runDue.d.ts.map +1 -0
- package/dist/types/core/silhouette.d.ts +16 -0
- package/dist/types/core/silhouette.d.ts.map +1 -0
- package/dist/types/debug/DrawCallCounter.d.ts.map +1 -1
- package/dist/types/electron/electronLike.d.ts +56 -0
- package/dist/types/electron/electronLike.d.ts.map +1 -0
- package/dist/types/electron/index.d.ts +15 -0
- package/dist/types/electron/index.d.ts.map +1 -0
- package/dist/types/electron/lockdown.d.ts +34 -0
- package/dist/types/electron/lockdown.d.ts.map +1 -0
- package/dist/types/electron/lockdownRules.d.ts +29 -0
- package/dist/types/electron/lockdownRules.d.ts.map +1 -0
- package/dist/types/electron/sessionStore.d.ts +41 -0
- package/dist/types/electron/sessionStore.d.ts.map +1 -0
- package/dist/types/electron/shellId.d.ts +23 -0
- package/dist/types/electron/shellId.d.ts.map +1 -0
- package/dist/types/electron/webFiles.d.ts +14 -0
- package/dist/types/electron/webFiles.d.ts.map +1 -0
- package/dist/types/electron/webPatcher.d.ts +81 -0
- package/dist/types/electron/webPatcher.d.ts.map +1 -0
- package/dist/types/electron/webPointers.d.ts +20 -0
- package/dist/types/electron/webPointers.d.ts.map +1 -0
- package/dist/types/engine/Engine.d.ts +16 -0
- package/dist/types/engine/Engine.d.ts.map +1 -1
- package/dist/types/engine/HiddenPause.d.ts +22 -0
- package/dist/types/engine/HiddenPause.d.ts.map +1 -0
- package/dist/types/fx/Afterimages.d.ts +62 -0
- package/dist/types/fx/Afterimages.d.ts.map +1 -0
- package/dist/types/index.d.ts +32 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/input/Actions.d.ts +7 -1
- package/dist/types/input/Actions.d.ts.map +1 -1
- package/dist/types/input/haptics.d.ts +42 -0
- package/dist/types/input/haptics.d.ts.map +1 -0
- package/dist/types/input/rumble.d.ts +41 -0
- package/dist/types/input/rumble.d.ts.map +1 -0
- package/dist/types/net/ApiClient.d.ts +74 -0
- package/dist/types/net/ApiClient.d.ts.map +1 -0
- package/dist/types/net/Connection.d.ts +22 -0
- package/dist/types/net/Connection.d.ts.map +1 -1
- package/dist/types/net/constants.d.ts +13 -4
- package/dist/types/net/constants.d.ts.map +1 -1
- package/dist/types/net/movement.d.ts.map +1 -1
- package/dist/types/net/reconnect.d.ts +14 -0
- package/dist/types/net/reconnect.d.ts.map +1 -0
- package/dist/types/pixel/Darkness.d.ts +17 -5
- package/dist/types/pixel/Darkness.d.ts.map +1 -1
- package/dist/types/pixel/PixelMarks.d.ts +68 -0
- package/dist/types/pixel/PixelMarks.d.ts.map +1 -0
- package/dist/types/pixel/aimPixels.d.ts +23 -0
- package/dist/types/pixel/aimPixels.d.ts.map +1 -0
- package/dist/types/pixel/index.d.ts +4 -1
- package/dist/types/pixel/index.d.ts.map +1 -1
- package/dist/types/pixel/lifeArt.d.ts +63 -0
- package/dist/types/pixel/lifeArt.d.ts.map +1 -0
- package/dist/types/pixel/pixelPaint.d.ts +1 -0
- package/dist/types/pixel/pixelPaint.d.ts.map +1 -1
- package/dist/types/pixel/pixelParticles.d.ts +21 -0
- package/dist/types/pixel/pixelParticles.d.ts.map +1 -0
- package/dist/types/platform/appResume.d.ts +25 -0
- package/dist/types/platform/appResume.d.ts.map +1 -0
- package/dist/types/platform/fullscreen.d.ts +37 -0
- package/dist/types/platform/fullscreen.d.ts.map +1 -0
- package/dist/types/platform/orientation.d.ts +19 -0
- package/dist/types/platform/orientation.d.ts.map +1 -0
- package/dist/types/platform/pointerLock.d.ts +26 -0
- package/dist/types/platform/pointerLock.d.ts.map +1 -0
- package/dist/types/platform/reducedMotion.d.ts +20 -0
- package/dist/types/platform/reducedMotion.d.ts.map +1 -0
- package/dist/types/platform/timeoutSignal.d.ts +6 -0
- package/dist/types/platform/timeoutSignal.d.ts.map +1 -0
- package/dist/types/react/ConfirmButton.d.ts +26 -0
- package/dist/types/react/ConfirmButton.d.ts.map +1 -0
- package/dist/types/react/baseCss.d.ts +1 -1
- package/dist/types/react/baseCss.d.ts.map +1 -1
- package/dist/types/react/index.d.ts +2 -0
- package/dist/types/react/index.d.ts.map +1 -1
- package/dist/types/react/labels.d.ts +2 -0
- package/dist/types/react/labels.d.ts.map +1 -1
- package/dist/types/react/useJsonSelector.d.ts +13 -0
- package/dist/types/react/useJsonSelector.d.ts.map +1 -0
- package/dist/types/tilemap/TilemapView.d.ts +17 -0
- package/dist/types/tilemap/TilemapView.d.ts.map +1 -1
- package/dist/types/tilemap/autotile.d.ts +95 -0
- package/dist/types/tilemap/autotile.d.ts.map +1 -0
- package/dist/types/tilemap/collision.d.ts +8 -0
- package/dist/types/tilemap/collision.d.ts.map +1 -1
- package/dist/types/tilemap/ldtk.d.ts +97 -0
- package/dist/types/tilemap/ldtk.d.ts.map +1 -0
- package/dist/types/tilemap/ldtkParse.d.ts +26 -0
- package/dist/types/tilemap/ldtkParse.d.ts.map +1 -0
- package/dist/types/ui/index.d.ts +4 -0
- package/dist/types/ui/index.d.ts.map +1 -1
- package/dist/types/ui/rich/RichText.d.ts +48 -0
- package/dist/types/ui/rich/RichText.d.ts.map +1 -0
- package/dist/types/ui/rich/richFonts.d.ts +70 -0
- package/dist/types/ui/rich/richFonts.d.ts.map +1 -0
- package/dist/types/ui/rich/richLayout.d.ts +76 -0
- package/dist/types/ui/rich/richLayout.d.ts.map +1 -0
- package/dist/types/ui/rich/richMarkup.d.ts +48 -0
- package/dist/types/ui/rich/richMarkup.d.ts.map +1 -0
- package/dist/types/updates/index.d.ts +9 -0
- package/dist/types/updates/index.d.ts.map +1 -0
- package/dist/types/updates/manifest.d.ts +74 -0
- package/dist/types/updates/manifest.d.ts.map +1 -0
- package/dist/types/updates/pickUpdate.d.ts +43 -0
- package/dist/types/updates/pickUpdate.d.ts.map +1 -0
- package/dist/types/updates/webPlan.d.ts +21 -0
- package/dist/types/updates/webPlan.d.ts.map +1 -0
- package/dist/ui/Bar.js +0 -1
- package/dist/ui/Button.js +0 -1
- package/dist/ui/Dialog.js +0 -1
- package/dist/ui/FocusManager.js +0 -1
- package/dist/ui/Label.js +0 -1
- package/dist/ui/List.js +0 -1
- package/dist/ui/Panel.js +0 -1
- package/dist/ui/ScrollView.js +0 -1
- package/dist/ui/Slider.js +0 -1
- package/dist/ui/Stack.js +0 -1
- package/dist/ui/Toggle.js +0 -1
- package/dist/ui/UiHost.js +0 -1
- package/dist/ui/UiPointerGate.js +0 -1
- package/dist/ui/UiRoot.js +0 -1
- package/dist/ui/Widget.js +0 -1
- package/dist/ui/dom/DomOverlay.js +0 -1
- package/dist/ui/dom/DomWorldAnchors.js +0 -1
- package/dist/ui/dom/InputShield.js +0 -1
- package/dist/ui/dom/createStore.js +0 -1
- package/dist/ui/dom/shieldDecision.js +0 -1
- package/dist/ui/dom/worldToScreen.js +0 -1
- package/dist/ui/layout/anchor.js +0 -1
- package/dist/ui/layout/barDrain.js +0 -1
- package/dist/ui/layout/fitToViewport.js +0 -1
- package/dist/ui/layout/focusNav.js +0 -1
- package/dist/ui/layout/geometry.js +0 -1
- package/dist/ui/layout/listWidth.js +0 -1
- package/dist/ui/layout/placeTooltip.js +0 -1
- package/dist/ui/layout/scroll.js +0 -1
- package/dist/ui/layout/slider.js +0 -1
- package/dist/ui/layout/stack.js +0 -1
- package/dist/ui/layout/wrapRow.js +0 -1
- package/dist/ui/rich/RichText.js +87 -0
- package/dist/ui/rich/richFonts.js +105 -0
- package/dist/ui/rich/richLayout.js +132 -0
- package/dist/ui/rich/richMarkup.js +67 -0
- package/dist/ui.js +75 -65
- package/dist/updates/manifest.js +35 -0
- package/dist/updates/pickUpdate.js +27 -0
- package/dist/updates/webPlan.js +14 -0
- package/dist/updates.js +15 -0
- package/package.json +31 -6
- package/dist/1681-engine.js.map +0 -1
- package/dist/ambient/ColorGrade.js.map +0 -1
- package/dist/ambient/DayClock.js.map +0 -1
- package/dist/ambient/WeatherLayer.js.map +0 -1
- package/dist/ambient/grade.js.map +0 -1
- package/dist/ambient/weather.js.map +0 -1
- package/dist/anim/AnimStateMachine.js.map +0 -1
- package/dist/anim/Animator.js.map +0 -1
- package/dist/anim/animStateCompile.js.map +0 -1
- package/dist/anim/animStateSystem.js.map +0 -1
- package/dist/anim/animationSystem.js.map +0 -1
- package/dist/anim/asepriteSlices.js.map +0 -1
- package/dist/anim/asepriteTags.js.map +0 -1
- package/dist/anim/parseAseprite.js.map +0 -1
- package/dist/assets/AssetLoader.js.map +0 -1
- package/dist/assets/loadAseprite.js.map +0 -1
- package/dist/assets/takeCleanerWorker-DTcI_Jqr.js.map +0 -1
- package/dist/audio/Footsteps.js.map +0 -1
- package/dist/audio/MusicPlayer.js.map +0 -1
- package/dist/audio/SoundEngine.js.map +0 -1
- package/dist/audio/cleanTake.js.map +0 -1
- package/dist/audio/music/ElementVoice.js.map +0 -1
- package/dist/audio/music/GraphVoice.js.map +0 -1
- package/dist/audio/music/MusicChannel.js.map +0 -1
- package/dist/audio/music/musicVoice.js.map +0 -1
- package/dist/audio/sampleBank.js.map +0 -1
- package/dist/audio/soundTable.js.map +0 -1
- package/dist/audio/synth.js.map +0 -1
- package/dist/core/BitmapLabel.js.map +0 -1
- package/dist/core/Camera.js.map +0 -1
- package/dist/core/Clock.js.map +0 -1
- package/dist/core/Graphics.js.map +0 -1
- package/dist/core/Group.js.map +0 -1
- package/dist/core/Image.js.map +0 -1
- package/dist/core/ObjectFactory.js.map +0 -1
- package/dist/core/Pointer.js.map +0 -1
- package/dist/core/Rectangle.js.map +0 -1
- package/dist/core/Stage.js.map +0 -1
- package/dist/core/Text.js.map +0 -1
- package/dist/core/TextureRegistry.js.map +0 -1
- package/dist/core/Timeline.js.map +0 -1
- package/dist/core/TimelineBuilder.js.map +0 -1
- package/dist/core/TimelineChild.js.map +0 -1
- package/dist/core/Tweener.js.map +0 -1
- package/dist/core/atlas.js.map +0 -1
- package/dist/core/atlasPlan.js.map +0 -1
- package/dist/core/eases.js.map +0 -1
- package/dist/core/gameObject.js.map +0 -1
- package/dist/core/pixiPatches.js.map +0 -1
- package/dist/core/timelinePlace.js.map +0 -1
- package/dist/core/tweenProps.js.map +0 -1
- package/dist/debug/DebugOverlay.js.map +0 -1
- package/dist/debug/DrawCallCounter.js.map +0 -1
- package/dist/debug/ErrorLog.js.map +0 -1
- package/dist/debug/FrameStats.js.map +0 -1
- package/dist/debug/inspectWorld.js.map +0 -1
- package/dist/diagnostics/ErrorDeduper.js.map +0 -1
- package/dist/diagnostics/FrameSampler.js.map +0 -1
- package/dist/diagnostics/bootWatch.js.map +0 -1
- package/dist/diagnostics/captureErrors.js.map +0 -1
- package/dist/diagnostics/contextLoss.js.map +0 -1
- package/dist/diagnostics/frameStats.js.map +0 -1
- package/dist/diagnostics/gpuInfo.js.map +0 -1
- package/dist/diagnostics/renderGuard.js.map +0 -1
- package/dist/ecs/SparseSet.js.map +0 -1
- package/dist/ecs/World.js.map +0 -1
- package/dist/ecs/fields.js.map +0 -1
- package/dist/engine/Engine.js.map +0 -1
- package/dist/engine/FixedLoop.js.map +0 -1
- package/dist/engine/Scene.js.map +0 -1
- package/dist/engine/SceneManager.js.map +0 -1
- package/dist/events/EventBus.js.map +0 -1
- package/dist/fx/FloatingText.js.map +0 -1
- package/dist/fx/hitStop.js.map +0 -1
- package/dist/fx/viewCull.js.map +0 -1
- package/dist/i18n/Translator.js.map +0 -1
- package/dist/i18n/extractStrings.js.map +0 -1
- package/dist/i18n/formatMessage.js.map +0 -1
- package/dist/input/Actions.js.map +0 -1
- package/dist/input/AimGesture.js.map +0 -1
- package/dist/input/Keyboard.js.map +0 -1
- package/dist/input/Keymap.js.map +0 -1
- package/dist/input/TargetLock.js.map +0 -1
- package/dist/input/aimAxis.js.map +0 -1
- package/dist/input/keyChord.js.map +0 -1
- package/dist/input/longPress.js.map +0 -1
- package/dist/input/stickAxis.js.map +0 -1
- package/dist/input/touchDetect.js.map +0 -1
- package/dist/light/LightLayer.js.map +0 -1
- package/dist/nav/MinHeap.js.map +0 -1
- package/dist/nav/findPath.js.map +0 -1
- package/dist/nav/navGrid.js.map +0 -1
- package/dist/nav/nearestOpen.js.map +0 -1
- package/dist/nav/straightenPath.js.map +0 -1
- package/dist/net/Connection.js.map +0 -1
- package/dist/net/InterpolationBuffer.js.map +0 -1
- package/dist/net/PredictedMover.js.map +0 -1
- package/dist/net/Room.js.map +0 -1
- package/dist/net/RoomHost.js.map +0 -1
- package/dist/net/cadence.js.map +0 -1
- package/dist/net/constants.js.map +0 -1
- package/dist/net/lobby/LobbyClient.js.map +0 -1
- package/dist/net/lobby/LobbyHost.js.map +0 -1
- package/dist/net/lobby/LobbyRooms.js.map +0 -1
- package/dist/net/lobby/Matchmaker.js.map +0 -1
- package/dist/net/movement.js.map +0 -1
- package/dist/net/protocol.js.map +0 -1
- package/dist/net/serverClock.js.map +0 -1
- package/dist/net/snapshotCodec.js.map +0 -1
- package/dist/parallax/Parallax.js.map +0 -1
- package/dist/parallax/ParallaxLayer.js.map +0 -1
- package/dist/parallax/parallaxMath.js.map +0 -1
- package/dist/particles/Emitter.js.map +0 -1
- package/dist/particles/ParticleBudget.js.map +0 -1
- package/dist/particles/ParticleSim.js.map +0 -1
- package/dist/particles/particleCurves.js.map +0 -1
- package/dist/particles/particleSampling.js.map +0 -1
- package/dist/physics/Body.js.map +0 -1
- package/dist/physics/BroadPhase.js.map +0 -1
- package/dist/physics/Contact.js.map +0 -1
- package/dist/physics/ContactSolver.js.map +0 -1
- package/dist/physics/PhysicsWorld.js.map +0 -1
- package/dist/physics/SpatialHash.js.map +0 -1
- package/dist/physics/collide.js.map +0 -1
- package/dist/physics/collidePolygon.js.map +0 -1
- package/dist/physics/contactReport.js.map +0 -1
- package/dist/physics/drawColliders.js.map +0 -1
- package/dist/physics/physicsSystem.js.map +0 -1
- package/dist/physics/polygon.js.map +0 -1
- package/dist/physics/raycast.js.map +0 -1
- package/dist/physics/syncToBody.js.map +0 -1
- package/dist/physics/tileBodies.js.map +0 -1
- package/dist/physics/types.js.map +0 -1
- package/dist/pixel/Darkness.js.map +0 -1
- package/dist/pixel/DitherVignette.js.map +0 -1
- package/dist/pixel/Evaporation.js.map +0 -1
- package/dist/pixel/NightShade.js.map +0 -1
- package/dist/pixel/PixelLayer.js.map +0 -1
- package/dist/pixel/SwayProp.js.map +0 -1
- package/dist/pixel/lights.js.map +0 -1
- package/dist/pixel/nineSlice.js.map +0 -1
- package/dist/pixel/paintLayer.js.map +0 -1
- package/dist/pixel/palette.js.map +0 -1
- package/dist/pixel/pixel.js.map +0 -1
- package/dist/pixel/pixelPaint.js.map +0 -1
- package/dist/pixel/pixelTone.js.map +0 -1
- package/dist/pixel/propKit.js.map +0 -1
- package/dist/pixel/ramp.js.map +0 -1
- package/dist/pixel/selout.js.map +0 -1
- package/dist/pixel/spritePixels.js.map +0 -1
- package/dist/pixel/swayRig.js.map +0 -1
- package/dist/pixel/vignetteMask.js.map +0 -1
- package/dist/pixel/weatherArt.js.map +0 -1
- package/dist/pixel.js.map +0 -1
- package/dist/platform/touch.js.map +0 -1
- package/dist/postfx/BloomFilter.js.map +0 -1
- package/dist/postfx/ChromaticAberrationFilter.js.map +0 -1
- package/dist/postfx/ColorAdjustFilter.js.map +0 -1
- package/dist/postfx/CrtFilter.js.map +0 -1
- package/dist/postfx/PixelateFilter.js.map +0 -1
- package/dist/postfx/PostFx.js.map +0 -1
- package/dist/postfx/ShockwaveFilter.js.map +0 -1
- package/dist/postfx/VignetteFilter.js.map +0 -1
- package/dist/postfx/fxAnimator.js.map +0 -1
- package/dist/postfx/fxShader.js.map +0 -1
- package/dist/postfx.js.map +0 -1
- package/dist/react/ChoiceDialog.js.map +0 -1
- package/dist/react/ConfirmDialog.js.map +0 -1
- package/dist/react/Glyph.js.map +0 -1
- package/dist/react/Modal.js.map +0 -1
- package/dist/react/Panel.js.map +0 -1
- package/dist/react/PixelImage.js.map +0 -1
- package/dist/react/Select.js.map +0 -1
- package/dist/react/Slider.js.map +0 -1
- package/dist/react/SplitPane.js.map +0 -1
- package/dist/react/TabStrip.js.map +0 -1
- package/dist/react/TitleTips.js.map +0 -1
- package/dist/react/Tooltip.js.map +0 -1
- package/dist/react/UiProvider.js.map +0 -1
- package/dist/react/baseCss.js.map +0 -1
- package/dist/react/choiceStore.js.map +0 -1
- package/dist/react/classNames.js.map +0 -1
- package/dist/react/confirmStore.js.map +0 -1
- package/dist/react/labels.js.map +0 -1
- package/dist/react/placement.js.map +0 -1
- package/dist/react/useFillSheet.js.map +0 -1
- package/dist/react/useFitToViewport.js.map +0 -1
- package/dist/react/usePicked.js.map +0 -1
- package/dist/react/useStore.js.map +0 -1
- package/dist/react/useViewport.js.map +0 -1
- package/dist/react.js.map +0 -1
- package/dist/rig/PosePlayer.js.map +0 -1
- package/dist/rig/RigView.js.map +0 -1
- package/dist/rig/Skeleton.js.map +0 -1
- package/dist/rig/humanoid.js.map +0 -1
- package/dist/rig/humanoid.json.js.map +0 -1
- package/dist/rig/humanoidPoses.js.map +0 -1
- package/dist/rig/poseMath.js.map +0 -1
- package/dist/rig/poses.json.js.map +0 -1
- package/dist/save/Autosaver.js.map +0 -1
- package/dist/save/MemoryBackend.js.map +0 -1
- package/dist/save/SaveStore.js.map +0 -1
- package/dist/save/WebStorageBackend.js.map +0 -1
- package/dist/save/checksum.js.map +0 -1
- package/dist/save/migrateSave.js.map +0 -1
- package/dist/settings.js.map +0 -1
- package/dist/tilemap/TilemapView.js.map +0 -1
- package/dist/tilemap/collision.js.map +0 -1
- package/dist/tilemap/tiled.js.map +0 -1
- package/dist/transitions/CrossfadeTransition.js.map +0 -1
- package/dist/transitions/DitherWipeTransition.js.map +0 -1
- package/dist/transitions/FadeTransition.js.map +0 -1
- package/dist/transitions/Letterbox.js.map +0 -1
- package/dist/transitions/ditherMask.js.map +0 -1
- package/dist/transitions/transitionTo.js.map +0 -1
- package/dist/transitions/tweenDone.js.map +0 -1
- package/dist/ui/Bar.js.map +0 -1
- package/dist/ui/Button.js.map +0 -1
- package/dist/ui/Dialog.js.map +0 -1
- package/dist/ui/FocusManager.js.map +0 -1
- package/dist/ui/Label.js.map +0 -1
- package/dist/ui/List.js.map +0 -1
- package/dist/ui/Panel.js.map +0 -1
- package/dist/ui/ScrollView.js.map +0 -1
- package/dist/ui/Slider.js.map +0 -1
- package/dist/ui/Stack.js.map +0 -1
- package/dist/ui/Toggle.js.map +0 -1
- package/dist/ui/UiHost.js.map +0 -1
- package/dist/ui/UiPointerGate.js.map +0 -1
- package/dist/ui/UiRoot.js.map +0 -1
- package/dist/ui/Widget.js.map +0 -1
- package/dist/ui/dom/DomOverlay.js.map +0 -1
- package/dist/ui/dom/DomWorldAnchors.js.map +0 -1
- package/dist/ui/dom/InputShield.js.map +0 -1
- package/dist/ui/dom/createStore.js.map +0 -1
- package/dist/ui/dom/shieldDecision.js.map +0 -1
- package/dist/ui/dom/worldToScreen.js.map +0 -1
- package/dist/ui/layout/anchor.js.map +0 -1
- package/dist/ui/layout/barDrain.js.map +0 -1
- package/dist/ui/layout/fitToViewport.js.map +0 -1
- package/dist/ui/layout/focusNav.js.map +0 -1
- package/dist/ui/layout/geometry.js.map +0 -1
- package/dist/ui/layout/listWidth.js.map +0 -1
- package/dist/ui/layout/placeTooltip.js.map +0 -1
- package/dist/ui/layout/scroll.js.map +0 -1
- package/dist/ui/layout/slider.js.map +0 -1
- package/dist/ui/layout/stack.js.map +0 -1
- package/dist/ui/layout/wrapRow.js.map +0 -1
- package/dist/ui.js.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ViewRect } from '../../core/Camera.js';
|
|
2
|
+
import type { Stage } from '../../core/Stage.js';
|
|
3
|
+
import { type LifeAir, type LifePoint } from './lifeMotion.js';
|
|
4
|
+
export interface ChimneySmokeOptions {
|
|
5
|
+
/** The chimneys' mouths in world pixels. */
|
|
6
|
+
mouths: readonly LifePoint[];
|
|
7
|
+
/** The puff's frames from young to old (it grows through them and dithers away). */
|
|
8
|
+
frames: readonly string[];
|
|
9
|
+
/** Puffs in each chimney's pool (default 7). */
|
|
10
|
+
puffs?: number;
|
|
11
|
+
/** A puff every this many ms, give or take 30% (default 650). */
|
|
12
|
+
puffEveryMs?: number;
|
|
13
|
+
/** A puff's life (ms, default 4600). */
|
|
14
|
+
lifeMs?: number;
|
|
15
|
+
/** World px a second it climbs (default 7). */
|
|
16
|
+
rise?: number;
|
|
17
|
+
/** World px a second the wind leans it (default 9). */
|
|
18
|
+
drift?: number;
|
|
19
|
+
/** Depth in the world layer (default 900_000). */
|
|
20
|
+
depth?: number;
|
|
21
|
+
snap?: boolean;
|
|
22
|
+
random?: () => number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Smoke rising from chimneys: each mouth lets out a puff every so often that climbs, grows through its frames, leans
|
|
26
|
+
* downwind and is gone. Only mouths on screen puff; a mouth that leaves the view drops its puffs at once.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ChimneySmoke {
|
|
29
|
+
private readonly options;
|
|
30
|
+
private readonly chimneys;
|
|
31
|
+
private readonly snap;
|
|
32
|
+
private readonly random;
|
|
33
|
+
constructor(stage: Stage, options: ChimneySmokeOptions);
|
|
34
|
+
update(now: number, view: ViewRect, air: LifeAir, enabled?: boolean): void;
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=ChimneySmoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChimneySmoke.d.ts","sourceRoot":"","sources":["../../../../src/ambient/life/ChimneySmoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAc,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B,oFAAoF;IACpF,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAeD;;;GAGG;AACH,qBAAa,YAAY;IAOrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAGpC,KAAK,EAAE,KAAK,EACK,OAAO,EAAE,mBAAmB;IAgB/C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,UAAO,GAAG,IAAI;IAwCvE,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ViewRect } from '../../core/Camera.js';
|
|
2
|
+
import type { Stage } from '../../core/Stage.js';
|
|
3
|
+
import type { LifeAir, LifeSource } from './lifeMotion.js';
|
|
4
|
+
/**
|
|
5
|
+
* How a drift moves:
|
|
6
|
+
* - `leaf`: tumbles down through its frames, lands, lies a moment and is gone;
|
|
7
|
+
* - `seed`: blown across the view on a slow wobble (dandelion seed, spores, ash on the wind);
|
|
8
|
+
* - `ember`: rises, cooling through its frames, and goes out within a tile or three;
|
|
9
|
+
* - `mote`: hangs in the air, barely moving, and winks out now and then (underground dust);
|
|
10
|
+
* - `ash`: blown across like a seed, but from a source it lifts off the ground instead.
|
|
11
|
+
*/
|
|
12
|
+
export type DriftKind = 'leaf' | 'seed' | 'ember' | 'mote' | 'ash';
|
|
13
|
+
export interface DriftOptions {
|
|
14
|
+
kind: DriftKind;
|
|
15
|
+
/** Bodies in the pool; a body off screen is hidden and re-used, never freed. */
|
|
16
|
+
count: number;
|
|
17
|
+
/**
|
|
18
|
+
* The looks, each a list of frames; body `i` wears `looks[i % looks.length]`. A leaf tumbles through its frames and
|
|
19
|
+
* lies on the first; an ember cools from its first to its last; the others wear the first.
|
|
20
|
+
*/
|
|
21
|
+
looks: readonly (readonly string[])[];
|
|
22
|
+
/**
|
|
23
|
+
* Where a body sets off from, if anywhere in particular: a canopy on screen a leaf falls from (and lands just under),
|
|
24
|
+
* a patch of ground ash or embers lift off. Null when there is none in view now.
|
|
25
|
+
*/
|
|
26
|
+
from?: LifeSource;
|
|
27
|
+
/**
|
|
28
|
+
* Only from `from` (a drift over certain ground): a body waits rather than drift in from the view's edge. Default
|
|
29
|
+
* false — a leaf with no canopy in view still blows in from the edge.
|
|
30
|
+
*/
|
|
31
|
+
sourceOnly?: boolean;
|
|
32
|
+
/** Depth in the world layer (default 900_000: over the bodies and props, under the weather and the names). */
|
|
33
|
+
depth?: number;
|
|
34
|
+
/** Positions on whole world pixels (default true). */
|
|
35
|
+
snap?: boolean;
|
|
36
|
+
random?: () => number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* One kind of thing on the air: a fixed pool that lives only inside the camera's view, each body on whole world
|
|
40
|
+
* pixels and flipped between painted frames rather than rotated (a rotated pixel leaf reads as a different art style).
|
|
41
|
+
* Feed it the frame's view and the air; `enabled` false hides it (a reduced-effects setting).
|
|
42
|
+
*/
|
|
43
|
+
export declare class Drift {
|
|
44
|
+
private readonly options;
|
|
45
|
+
private readonly motes;
|
|
46
|
+
private readonly kind;
|
|
47
|
+
private readonly snap;
|
|
48
|
+
private readonly random;
|
|
49
|
+
constructor(stage: Stage, options: DriftOptions);
|
|
50
|
+
/** `now` and `dt` in ms. */
|
|
51
|
+
update(now: number, dt: number, view: ViewRect, air: LifeAir, enabled?: boolean): void;
|
|
52
|
+
destroy(): void;
|
|
53
|
+
/** `anywhere`: a first fill lands bodies all over the view, not only at its edge, so a scene opens already alive. */
|
|
54
|
+
private spawn;
|
|
55
|
+
private spawnFrom;
|
|
56
|
+
private step;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=Drift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drift.d.ts","sourceRoot":"","sources":["../../../../src/ambient/life/Drift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAW,UAAU,EAAE,MAAM,cAAc,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IACtC;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8GAA8G;IAC9G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAuBD;;;;GAIG;AACH,qBAAa,KAAK;IAQd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAGpC,KAAK,EAAE,KAAK,EACK,OAAO,EAAE,YAAY;IAaxC,4BAA4B;IAC5B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,UAAO,GAAG,IAAI;IAuBnF,OAAO,IAAI,IAAI;IAKf,qHAAqH;IACrH,OAAO,CAAC,KAAK;IA2Bb,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,IAAI;CAwCb"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import type { ViewRect } from '../../core/Camera.js';
|
|
3
|
+
import type { Stage } from '../../core/Stage.js';
|
|
4
|
+
import { type LifeAir, type LifeSource } from './lifeMotion.js';
|
|
5
|
+
export interface FirefliesOptions {
|
|
6
|
+
count: number;
|
|
7
|
+
/** The two frames: a dim pixel, and the glow. */
|
|
8
|
+
frames: readonly [dim: string, lit: string];
|
|
9
|
+
/** Somewhere in view to hover round (the water's edge, the feet of trees), or null when none is on screen. */
|
|
10
|
+
home: LifeSource;
|
|
11
|
+
/**
|
|
12
|
+
* Where the layer goes. Default `'screen'`: on the screen layer, following the camera, so it can be laid **over** a
|
|
13
|
+
* darkness drawn there (`NightShade`, `Darkness`) instead of being darkened with the world under it — add it after
|
|
14
|
+
* the darkness. `'world'`: in the world layer at `depth`, for a game with no darkness over its world.
|
|
15
|
+
*/
|
|
16
|
+
layer?: 'screen' | 'world';
|
|
17
|
+
/** World-layer depth when `layer` is `'world'` (default 900_000). */
|
|
18
|
+
depth?: number;
|
|
19
|
+
snap?: boolean;
|
|
20
|
+
random?: () => number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Fireflies at night: single pixels drifting slowly round homes on screen, each lighting up and going out on its own
|
|
24
|
+
* clock. How many are out grows with the dark (none before night 0.5, all by 0.85). They are a light, so by default
|
|
25
|
+
* their layer sits on the screen and follows the camera (`Camera.follow` copies the world layer's transform, shake
|
|
26
|
+
* included, once the frame's camera is known).
|
|
27
|
+
*/
|
|
28
|
+
export declare class Fireflies {
|
|
29
|
+
private readonly stage;
|
|
30
|
+
private readonly options;
|
|
31
|
+
readonly layer: Container<import("pixi.js").ContainerChild>;
|
|
32
|
+
private readonly flies;
|
|
33
|
+
private readonly dim;
|
|
34
|
+
private readonly lit;
|
|
35
|
+
private readonly onScreen;
|
|
36
|
+
private readonly snap;
|
|
37
|
+
private readonly random;
|
|
38
|
+
constructor(stage: Stage, options: FirefliesOptions);
|
|
39
|
+
update(now: number, view: ViewRect, air: LifeAir, enabled?: boolean): void;
|
|
40
|
+
destroy(): void;
|
|
41
|
+
private settle;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=Fireflies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fireflies.d.ts","sourceRoot":"","sources":["../../../../src/ambient/life/Fireflies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAA4C,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvG,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5C,8GAA8G;IAC9G,IAAI,EAAE,UAAU,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAUD;;;;;GAKG;AACH,qBAAa,SAAS;IAUlB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B,QAAQ,CAAC,KAAK,8CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAGnB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB;IAwB5C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,UAAO,GAAG,IAAI;IA8BvE,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,MAAM;CAQf"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ViewRect } from '../../core/Camera.js';
|
|
2
|
+
/** A point in world pixels. */
|
|
3
|
+
export interface LifePoint {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
}
|
|
7
|
+
/** A box in world pixels (a canopy leaves fall from, a tile ash lifts off); a point is a box of no size. */
|
|
8
|
+
export interface LifeBox extends LifePoint {
|
|
9
|
+
w?: number;
|
|
10
|
+
h?: number;
|
|
11
|
+
}
|
|
12
|
+
/** The air the life reads: how dark it is and how hard the wind blows. */
|
|
13
|
+
export interface LifeAir {
|
|
14
|
+
/** 0 by day, 1 at full night (birds and butterflies keep away from the dark, fireflies come out of it). */
|
|
15
|
+
night: number;
|
|
16
|
+
/** 0 still air, 1 a gale: leans the drift, hastens a flock, bends smoke. */
|
|
17
|
+
wind: number;
|
|
18
|
+
}
|
|
19
|
+
/** Hands back somewhere to be: inside the camera's view, or null when there is nowhere there now. */
|
|
20
|
+
export type LifeSource<T extends LifeBox = LifeBox> = (view: ViewRect, random: () => number) => T | null;
|
|
21
|
+
/** Whether the box touches the view grown by `margin` on every side. */
|
|
22
|
+
export declare function boxInView(b: LifeBox, view: ViewRect, margin?: number): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* One of `items` in view, tried `tries` times at random rather than filtered: a forest's thousands of tiles cost the
|
|
25
|
+
* same few reads as a hamlet's dozen, and a miss only means the body waits a frame to try again.
|
|
26
|
+
*/
|
|
27
|
+
export declare function pickInView<T extends LifeBox>(items: readonly T[], view: ViewRect, random: () => number, tries?: number): T | null;
|
|
28
|
+
/** A `LifeSource` over a fixed list (flower beds, the water's edge, tiles of burnt ground). */
|
|
29
|
+
export declare function sourceOf<T extends LifeBox>(items: readonly T[], tries?: number): LifeSource<T>;
|
|
30
|
+
/** A bird's frame: a few beats (0, 1, 0, 1, 0), then a glide on raised wings (0) for three, each bird on its clock. */
|
|
31
|
+
export declare function birdFrame(now: number, offset: number, beatMs?: number): 0 | 1;
|
|
32
|
+
/**
|
|
33
|
+
* Where the `i`-th bird of a flock flies behind the leader: a loose V trailing back along `dirX` (its sign), ranks
|
|
34
|
+
* alternating side to side. `jitter` (0..1 each) loosens it so no two flocks are drawn alike.
|
|
35
|
+
*/
|
|
36
|
+
export declare function flockSlot(i: number, dirX: number, jitterX: number, jitterY: number): {
|
|
37
|
+
dx: number;
|
|
38
|
+
dy: number;
|
|
39
|
+
};
|
|
40
|
+
/** A firefly's blink at `t` seconds: 0 dark most of the time, 2 a glow for a beat, 1 a dim pixel either side of it. */
|
|
41
|
+
export declare function fireflyGlow(t: number): 0 | 1 | 2;
|
|
42
|
+
/** A firefly's slow wander about its home at `t` seconds: two sines across, one up and down. */
|
|
43
|
+
export declare function fireflyOffset(t: number): {
|
|
44
|
+
dx: number;
|
|
45
|
+
dy: number;
|
|
46
|
+
};
|
|
47
|
+
/** How many of a pool of `count` fireflies are out at `night`: none before 0.5, all by 0.85. */
|
|
48
|
+
export declare function firefliesOut(count: number, night: number): number;
|
|
49
|
+
export interface PuffMotion {
|
|
50
|
+
/** World px a second it climbs. */
|
|
51
|
+
rise: number;
|
|
52
|
+
/** World px a second the wind leans it at full age. */
|
|
53
|
+
drift: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Where a puff of smoke is `sec` seconds after it left a chimney's mouth, `age` the share of its life gone: it climbs
|
|
57
|
+
* straight out of the pot, then the wind takes it more the higher it gets. `seed` (0..1) gives each its own wobble.
|
|
58
|
+
*/
|
|
59
|
+
export declare function puffOffset(sec: number, age: number, seed: number, wind: number, m: PuffMotion): {
|
|
60
|
+
dx: number;
|
|
61
|
+
dy: number;
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=lifeMotion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifeMotion.d.ts","sourceRoot":"","sources":["../../../../src/ambient/life/lifeMotion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQlD,+BAA+B;AAC/B,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,4GAA4G;AAC5G,MAAM,WAAW,OAAQ,SAAQ,SAAS;IACxC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,0EAA0E;AAC1E,MAAM,WAAW,OAAO;IACtB,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qGAAqG;AACrG,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC;AAEzG,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAI,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,EAAE,KAAK,SAAI,GAAG,CAAC,GAAG,IAAI,CAO5H;AAED,+FAA+F;AAC/F,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,SAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAEzF;AAED,uHAAuH;AACvH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,CAAC,GAAG,CAAC,CAG1E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAI/G;AAED,uHAAuH;AACvH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAGhD;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAEnE;AAED,gGAAgG;AAChG,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAK1H"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { CanvasTexture } from '../core/TextureRegistry.js';
|
|
2
|
+
import type { LdtkProject } from '../tilemap/ldtk.js';
|
|
1
3
|
import { type TileMap, type Tileset } from '../tilemap/tiled.js';
|
|
4
|
+
import { type AtlasFrame } from './textureAtlas.js';
|
|
2
5
|
/** Where loaded images go: the stage's `TextureRegistry` satisfies it. */
|
|
3
6
|
export interface TextureSink {
|
|
4
7
|
addCanvas(key: string, canvas: HTMLCanvasElement): unknown;
|
|
@@ -6,6 +9,26 @@ export interface TextureSink {
|
|
|
6
9
|
frameWidth: number;
|
|
7
10
|
frameHeight: number;
|
|
8
11
|
}): unknown;
|
|
12
|
+
/** Needed only by `atlas`; the stage's `TextureRegistry` has it. */
|
|
13
|
+
addAtlas?(key: string, pages: readonly {
|
|
14
|
+
canvas: HTMLCanvasElement;
|
|
15
|
+
frames: readonly AtlasFrame[];
|
|
16
|
+
}[]): CanvasTexture | unknown;
|
|
17
|
+
}
|
|
18
|
+
/** What a fetch must answer with; `arrayBuffer` is optional so older custom transports keep working (blob is used). */
|
|
19
|
+
export interface AssetResponse {
|
|
20
|
+
ok: boolean;
|
|
21
|
+
status: number;
|
|
22
|
+
blob(): Promise<Blob>;
|
|
23
|
+
json(): Promise<unknown>;
|
|
24
|
+
text(): Promise<string>;
|
|
25
|
+
arrayBuffer?(): Promise<ArrayBuffer>;
|
|
26
|
+
}
|
|
27
|
+
/** What an atlas brought besides its textures: its frame names (every page) and animations. */
|
|
28
|
+
export interface AtlasInfo {
|
|
29
|
+
frames: string[];
|
|
30
|
+
animations: Record<string, string[]>;
|
|
31
|
+
pages: number;
|
|
9
32
|
}
|
|
10
33
|
export interface AssetLoaderOptions {
|
|
11
34
|
/** Prefix for relative URLs (default: none, so relative to the page). */
|
|
@@ -13,20 +36,28 @@ export interface AssetLoaderOptions {
|
|
|
13
36
|
/** Requests running at once (default 6). */
|
|
14
37
|
concurrency?: number;
|
|
15
38
|
/** For tests and custom transports: defaults to the global `fetch`. */
|
|
16
|
-
fetch?: (url: string) => Promise<
|
|
17
|
-
ok: boolean;
|
|
18
|
-
status: number;
|
|
19
|
-
blob(): Promise<Blob>;
|
|
20
|
-
json(): Promise<unknown>;
|
|
21
|
-
text(): Promise<string>;
|
|
22
|
-
}>;
|
|
39
|
+
fetch?: (url: string) => Promise<AssetResponse>;
|
|
23
40
|
/** Turns image bytes into a canvas; defaults to `createImageBitmap` drawn onto a new canvas. */
|
|
24
41
|
toCanvas?: (blob: Blob) => Promise<HTMLCanvasElement>;
|
|
42
|
+
/**
|
|
43
|
+
* The context `audio` decodes through (default: the engine's sound context, `sound.audioContext`, once a gesture
|
|
44
|
+
* opened it). Null means "not yet": the bytes are kept and decoded on first `decodeAudio`.
|
|
45
|
+
*/
|
|
46
|
+
audioContext?: () => BaseAudioContext | null;
|
|
47
|
+
/** Installs a font's bytes; defaults to a `FontFace` added to `document.fonts`. */
|
|
48
|
+
addFont?: (family: string, data: ArrayBuffer, descriptors?: FontFaceDescriptors) => Promise<void>;
|
|
25
49
|
}
|
|
26
50
|
export interface TilemapAssetOptions {
|
|
27
51
|
/** The texture key a tileset's image is loaded under (default: the tileset's name). */
|
|
28
52
|
textureKey?: (tileset: Tileset) => string;
|
|
29
53
|
}
|
|
54
|
+
export interface LdtkAssetOptions extends TilemapAssetOptions {
|
|
55
|
+
/**
|
|
56
|
+
* Which external level files to fetch with the project (by level identifier); default every one. A level left out
|
|
57
|
+
* stays `loaded: false`, to be fetched later and read with `loadLdtkLevel`.
|
|
58
|
+
*/
|
|
59
|
+
levels?: readonly string[];
|
|
60
|
+
}
|
|
30
61
|
export interface LoadProgress {
|
|
31
62
|
done: number;
|
|
32
63
|
total: number;
|
|
@@ -37,7 +68,8 @@ export interface LoadProgress {
|
|
|
37
68
|
export declare function resolveUrl(url: string, base: string): string;
|
|
38
69
|
/**
|
|
39
70
|
* Loads a scene's assets before it starts: queue them, then `await load()`. Images become textures in the stage's
|
|
40
|
-
* registry (frames of a sprite sheet named 0, 1, 2…); JSON, text and Tiled maps are kept here by key
|
|
71
|
+
* registry (frames of a sprite sheet named 0, 1, 2…); JSON, text and Tiled maps are kept here by key; atlases register every frame under their key; fonts go to
|
|
72
|
+
* `document.fonts`; audio is decoded into `AudioBuffer`s (or kept as bytes until a context exists). A failed asset
|
|
41
73
|
* fails the whole load with its URL in the message.
|
|
42
74
|
*
|
|
43
75
|
* ```ts
|
|
@@ -55,6 +87,12 @@ export declare class AssetLoader {
|
|
|
55
87
|
private readonly queue;
|
|
56
88
|
private readonly data;
|
|
57
89
|
private readonly maps;
|
|
90
|
+
private readonly ldtks;
|
|
91
|
+
private readonly atlases;
|
|
92
|
+
/** Decoded audio by key; a key with bytes only waits for a context (`decodeAudio`). */
|
|
93
|
+
private readonly audioBuffers;
|
|
94
|
+
private readonly audioBytes;
|
|
95
|
+
private readonly decoding;
|
|
58
96
|
private readonly fetcher;
|
|
59
97
|
private readonly toCanvas;
|
|
60
98
|
private total;
|
|
@@ -70,6 +108,38 @@ export declare class AssetLoader {
|
|
|
70
108
|
text(key: string, url: string): this;
|
|
71
109
|
/** A Tiled JSON map, then every tileset image it names (resolved beside the map file). */
|
|
72
110
|
tilemap(key: string, url: string, options?: TilemapAssetOptions): this;
|
|
111
|
+
/**
|
|
112
|
+
* An LDtk project: the `.ldtk` file, the `.ldtkl` file of each level it saves apart (resolved beside the project),
|
|
113
|
+
* then every tileset image (resolved beside the project, as LDtk writes `relPath`). Counts as one asset, plus one
|
|
114
|
+
* per tileset image. Read it back with `ldtkProject(key)`; each level's `map` goes to `TilemapView` as it is.
|
|
115
|
+
*/
|
|
116
|
+
ldtk(key: string, url: string, options?: LdtkAssetOptions): this;
|
|
117
|
+
/** A loaded LDtk project. */
|
|
118
|
+
ldtkProject(key: string): LdtkProject;
|
|
119
|
+
/**
|
|
120
|
+
* A TexturePacker (or Pixi) JSON atlas, hash or array format: its page image, and for a multipack atlas every page
|
|
121
|
+
* named in `meta.related_multi_packs` (each resolved beside the file naming it). The first page is the texture
|
|
122
|
+
* `key`, further pages `key~1`, `key~2`…, and every frame of every page is found as `textures.get(key, frameName)`.
|
|
123
|
+
* Counts as one asset in the progress.
|
|
124
|
+
*/
|
|
125
|
+
atlas(key: string, url: string): this;
|
|
126
|
+
/**
|
|
127
|
+
* A web font (woff2, woff, ttf) under `family`, added to `document.fonts` once loaded so canvas text and the DOM can
|
|
128
|
+
* use it at once — load fonts before the first `Text` is drawn, or it measures with the fallback.
|
|
129
|
+
*/
|
|
130
|
+
font(family: string, url: string, descriptors?: FontFaceDescriptors): this;
|
|
131
|
+
/**
|
|
132
|
+
* A sound file decoded into an `AudioBuffer` through the engine's audio context (`getAudio`). Before any context
|
|
133
|
+
* exists (browsers open one only after a gesture) the bytes are kept and decoded by `decodeAudio`, so a loading
|
|
134
|
+
* screen never has to wait for the player to click.
|
|
135
|
+
*/
|
|
136
|
+
audio(key: string, url: string): this;
|
|
137
|
+
/** A loaded sound, decoded; null while it waits for an audio context (`decodeAudio`). */
|
|
138
|
+
getAudio(key: string): AudioBuffer | null;
|
|
139
|
+
/** A loaded sound, decoding its kept bytes through `ctx` (default: the loader's context) the first time. */
|
|
140
|
+
decodeAudio(key: string, ctx?: BaseAudioContext): Promise<AudioBuffer>;
|
|
141
|
+
/** What a loaded atlas holds: its frame names and animations. */
|
|
142
|
+
getAtlas(key: string): AtlasInfo;
|
|
73
143
|
/** Runs everything queued; `onProgress` after each asset. Safe to call again after queueing more. */
|
|
74
144
|
load(onProgress?: (p: LoadProgress) => void): Promise<void>;
|
|
75
145
|
/** A loaded JSON value. */
|
|
@@ -79,7 +149,12 @@ export declare class AssetLoader {
|
|
|
79
149
|
/** A loaded Tiled map. */
|
|
80
150
|
map(key: string): TileMap;
|
|
81
151
|
private add;
|
|
152
|
+
private full;
|
|
82
153
|
private request;
|
|
83
154
|
private blob;
|
|
155
|
+
/** An image file decoded into a canvas; a file that is not an image fails naming its URL. */
|
|
156
|
+
private canvas;
|
|
157
|
+
private bytes;
|
|
158
|
+
private decode;
|
|
84
159
|
}
|
|
85
160
|
//# sourceMappingURL=AssetLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetLoader.d.ts","sourceRoot":"","sources":["../../../src/assets/AssetLoader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AssetLoader.d.ts","sourceRoot":"","sources":["../../../src/assets/AssetLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/** A painted RGBA image: `w` × `h` pixels, 4 bytes each, row by row (what `ImageData` holds). */
|
|
2
|
+
export interface PaintedPixels {
|
|
3
|
+
w: number;
|
|
4
|
+
h: number;
|
|
5
|
+
pixels: ArrayBuffer;
|
|
6
|
+
}
|
|
7
|
+
/** Paints an item's texture off the main thread (`workerPainter`), or anywhere else that answers with a promise. */
|
|
8
|
+
export interface Painter<T> {
|
|
9
|
+
paint(item: T, id: string): Promise<PaintedPixels>;
|
|
10
|
+
/** Stops it for good (a worker terminated). */
|
|
11
|
+
dispose?(): void;
|
|
12
|
+
}
|
|
13
|
+
/** What a `Prepainter` needs of a texture registry (`TextureRegistry` has it). */
|
|
14
|
+
export interface PrepainterTextures {
|
|
15
|
+
exists(key: string): boolean;
|
|
16
|
+
remove(key: string): void;
|
|
17
|
+
addCanvas(key: string, canvas: HTMLCanvasElement): unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface PrepainterOptions<T> {
|
|
20
|
+
textures: PrepainterTextures;
|
|
21
|
+
/** The item's id, unique among items. */
|
|
22
|
+
id: (item: T) => string;
|
|
23
|
+
/** The texture key an id's painting is kept under (default the id itself). */
|
|
24
|
+
key?: (id: string) => string;
|
|
25
|
+
/** Null where nothing can be painted ahead: then everything is painted on arrival, as without a prepainter. */
|
|
26
|
+
painter: Painter<T> | null;
|
|
27
|
+
/** Turns painted pixels into a canvas (default a DOM canvas; tests hand in a stand-in). */
|
|
28
|
+
canvas?: (painted: PaintedPixels) => HTMLCanvasElement | null;
|
|
29
|
+
/** Told when a painting landed in the registry. */
|
|
30
|
+
onPainted?: (id: string) => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Paints ahead the big textures a player may need next (the maps beyond the current one's doors, the next level's
|
|
34
|
+
* backdrop) so the step into them finds them ready instead of painting them there and then — a large map's ground was
|
|
35
|
+
* two seconds of main-thread work, which froze the first step through every door. It also frees the rest: each such
|
|
36
|
+
* texture is one big image, and a long session through thirty-odd places kept every one of them.
|
|
37
|
+
*
|
|
38
|
+
* Whatever is not ready yet is the caller's to paint on arrival, as before; a painter that cannot start or fails only
|
|
39
|
+
* means nothing is painted ahead.
|
|
40
|
+
*/
|
|
41
|
+
export declare class Prepainter<T> {
|
|
42
|
+
private readonly options;
|
|
43
|
+
private readonly pending;
|
|
44
|
+
/** Ids whose painting is held as a texture: the current one and its neighbours. */
|
|
45
|
+
private readonly held;
|
|
46
|
+
private readonly key;
|
|
47
|
+
private destroyed;
|
|
48
|
+
constructor(options: PrepainterOptions<T>);
|
|
49
|
+
/**
|
|
50
|
+
* Stands on `current`: its texture (painted by the caller on arrival, or ahead) and its neighbours' are kept, every
|
|
51
|
+
* other one this prepainter held is freed, and the neighbours not yet painted are started.
|
|
52
|
+
*/
|
|
53
|
+
enter(current: T, next: readonly T[]): void;
|
|
54
|
+
/** Whether `id` is being painted right now (so a caller may wait for it a moment rather than paint it again). */
|
|
55
|
+
painting(id: string): boolean;
|
|
56
|
+
/** Ids held as textures now. */
|
|
57
|
+
get holding(): ReadonlySet<string>;
|
|
58
|
+
/** Starts painting `item` unless it is painted or under way. */
|
|
59
|
+
prepare(item: T): void;
|
|
60
|
+
/** Stops painting; textures already made are left to the registry. */
|
|
61
|
+
destroy(): void;
|
|
62
|
+
private receive;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=Prepainter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Prepainter.d.ts","sourceRoot":"","sources":["../../../src/assets/Prepainter.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,oHAAoH;AACpH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,+CAA+C;IAC/C,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,yCAAyC;IACzC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACxB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7B,+GAA+G;IAC/G,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,2FAA2F;IAC3F,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAC9D,mDAAmD;IACnD,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAaD;;;;;;;;GAQG;AACH,qBAAa,UAAU,CAAC,CAAC;IAOX,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyB;IAC7C,OAAO,CAAC,SAAS,CAAS;gBAEG,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAI1D;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI;IAa3C,iHAAiH;IACjH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI7B,gCAAgC;IAChC,IAAI,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAEjC;IAED,gEAAgE;IAChE,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAatB,sEAAsE;IACtE,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,OAAO;CAYhB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { PackedFrame } from '../core/TextureRegistry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reads TexturePacker's JSON atlases — the "JSON (Hash)" and "JSON (Array)" exports, which Pixi's own `Spritesheet`
|
|
4
|
+
* also reads — into plain numbers, with no Pixi or DOM, so the parsing is tested under node. A multipack atlas lists
|
|
5
|
+
* its other pages' JSON files in `meta.related_multi_packs`; the loader follows them and registers every frame of
|
|
6
|
+
* every page under one key.
|
|
7
|
+
*/
|
|
8
|
+
/** One frame as the registry needs it: where it lies on its page and how it is trimmed or turned. */
|
|
9
|
+
export type AtlasFrame = PackedFrame;
|
|
10
|
+
/** One page of an atlas: its image and its frames. */
|
|
11
|
+
export interface PackedAtlasPage {
|
|
12
|
+
/** The page image as named in `meta.image`, relative to the JSON file. */
|
|
13
|
+
image: string;
|
|
14
|
+
frames: AtlasFrame[];
|
|
15
|
+
/** Animations by name, each a list of frame names (`animations` in Pixi-flavoured JSON). */
|
|
16
|
+
animations: Record<string, string[]>;
|
|
17
|
+
/** Further pages' JSON files (`meta.related_multi_packs`), relative to this one. */
|
|
18
|
+
related: string[];
|
|
19
|
+
/** Pixels per unit the page was exported at (`meta.scale`, default 1). */
|
|
20
|
+
scale: number;
|
|
21
|
+
}
|
|
22
|
+
/** Parses one atlas JSON file; throws naming `where` (its URL) when it is not one. */
|
|
23
|
+
export declare function parseAtlas(json: unknown, where?: string): PackedAtlasPage;
|
|
24
|
+
/**
|
|
25
|
+
* Every page of a multipack atlas, the first first, each JSON fetched once however the pages name each other
|
|
26
|
+
* (TexturePacker lists every other page in each page). `load(url)` returns a page's parsed JSON; `resolve` turns a
|
|
27
|
+
* related name into a URL beside the file naming it.
|
|
28
|
+
*/
|
|
29
|
+
export declare function collectAtlasPages(url: string, load: (url: string) => Promise<PackedAtlasPage>, resolve: (name: string, base: string) => string): Promise<{
|
|
30
|
+
url: string;
|
|
31
|
+
page: PackedAtlasPage;
|
|
32
|
+
}[]>;
|
|
33
|
+
/** Frame names that appear on more than one page: the later page's frame wins, which is almost always a mistake. */
|
|
34
|
+
export declare function duplicateFrames(pages: readonly PackedAtlasPage[]): string[];
|
|
35
|
+
//# sourceMappingURL=textureAtlas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textureAtlas.d.ts","sourceRoot":"","sources":["../../../src/assets/textureAtlas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;GAKG;AAEH,qGAAqG;AACrG,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,4FAA4F;IAC5F,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,oFAAoF;IACpF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;CACf;AAsDD,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,SAAU,GAAG,eAAe,CAqB1E;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,EAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAC9C,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,EAAE,CAAC,CAgBnD;AAED,oHAAoH;AACpH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,EAAE,CAK3E"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PaintedPixels, Painter } from './Prepainter.js';
|
|
2
|
+
/** What the worker posts back for one request: the painted pixels (the buffer transferred), or why it could not. */
|
|
3
|
+
export type PaintReply = {
|
|
4
|
+
id: string;
|
|
5
|
+
} & (PaintedPixels | {
|
|
6
|
+
error: string;
|
|
7
|
+
});
|
|
8
|
+
export interface WorkerPainterOptions<T> {
|
|
9
|
+
/** Makes the worker, the first time something is painted: `() => new Worker(new URL('./paint.ts', import.meta.url), { type: 'module' })`. */
|
|
10
|
+
create: () => Worker;
|
|
11
|
+
/** The message posted for an item (default `{ id, item }`); the worker answers with a `PaintReply` naming that id. */
|
|
12
|
+
message?: (item: T, id: string) => unknown;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A `Painter` that paints in a worker. The worker answers each request with a `PaintReply` carrying the request's id,
|
|
16
|
+
* transferring the pixel buffer (`postMessage(reply, { transfer: [reply.pixels] })`) so nothing is copied back. A
|
|
17
|
+
* worker that cannot start or fails rejects everything under way and everything after: a prepainter then simply
|
|
18
|
+
* paints nothing ahead.
|
|
19
|
+
*/
|
|
20
|
+
export declare function workerPainter<T>(options: WorkerPainterOptions<T>): Painter<T>;
|
|
21
|
+
//# sourceMappingURL=workerPainter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerPainter.d.ts","sourceRoot":"","sources":["../../../src/assets/workerPainter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE3D,oHAAoH;AACpH,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE9E,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,6IAA6I;IAC7I,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,sHAAsH;IACtH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAmD7E"}
|
|
@@ -27,6 +27,11 @@ export declare class SoundEngine {
|
|
|
27
27
|
} | null;
|
|
28
28
|
private onRunning;
|
|
29
29
|
constructor();
|
|
30
|
+
/**
|
|
31
|
+
* The effects' audio context once something opened it (the first gesture does), else null: never created here, so
|
|
32
|
+
* asking does not open a context the browser would hold suspended. `AssetLoader.audio` decodes through it.
|
|
33
|
+
*/
|
|
34
|
+
get audioContext(): AudioContext | null;
|
|
30
35
|
play(name: string | undefined, opts?: SoundOptions): void;
|
|
31
36
|
private level;
|
|
32
37
|
private context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SoundEngine.d.ts","sourceRoot":"","sources":["../../../src/audio/SoundEngine.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,YAAY;IAC3B,iGAAiG;IACjG,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAK;IACnB,yFAAyF;IACzF,QAAQ,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAc;IAC7D,OAAO,CAAC,SAAS,CAAwC;;IAmCzD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,IAAI;IA0D7D,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;IA0Bf;;;OAGG;IACH,OAAO,CAAC,SAAS;IAajB,0EAA0E;IAC1E,OAAO,CAAC,MAAM;CAaf;AAED,eAAO,MAAM,KAAK,aAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"SoundEngine.d.ts","sourceRoot":"","sources":["../../../src/audio/SoundEngine.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,YAAY;IAC3B,iGAAiG;IACjG,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAK;IACnB,yFAAyF;IACzF,QAAQ,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAc;IAC7D,OAAO,CAAC,SAAS,CAAwC;;IAmCzD;;;OAGG;IACH,IAAI,YAAY,IAAI,YAAY,GAAG,IAAI,CAEtC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,IAAI;IA0D7D,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;IA0Bf;;;OAGG;IACH,OAAO,CAAC,SAAS;IAajB,0EAA0E;IAC1E,OAAO,CAAC,MAAM;CAaf;AAED,eAAO,MAAM,KAAK,aAAoB,CAAC"}
|
|
@@ -30,7 +30,7 @@ export declare class Camera {
|
|
|
30
30
|
zoom: number;
|
|
31
31
|
/** The zoom `reset` goes back to: the engine sets it from its `zoom` option (default 1). */
|
|
32
32
|
defaultZoom: number;
|
|
33
|
-
/** Backing pixels per screen pixel (the renderer's resolution, `zoomResolution`): what `snap` rounds to. */
|
|
33
|
+
/** Backing pixels per screen pixel (the renderer's resolution, `zoomResolution(zoom, devicePixelRatio)`): what `snap` rounds to. */
|
|
34
34
|
resolution: number;
|
|
35
35
|
/** Lands the view on whole backing pixels (pixel art); off, the world moves smoothly between them. */
|
|
36
36
|
roundPixels: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../src/core/Camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,MAAM;IA4Bf,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA5BzB,IAAI,SAAK;IACT,4FAA4F;IAC5F,WAAW,SAAK;IAChB,
|
|
1
|
+
{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../src/core/Camera.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Scene time and one-shot timers, advanced by the frame loop.
|
|
3
|
+
*
|
|
4
|
+
* `update` allocates nothing (`runDue`): a game scheduling effect beats every few milliseconds made two filtered
|
|
5
|
+
* arrays a frame. A timer that throws is reported to `onError` and dropped, and the others due that frame still run.
|
|
6
|
+
*/
|
|
2
7
|
export declare class Clock {
|
|
3
8
|
now: number;
|
|
4
|
-
|
|
9
|
+
/** Told of every error a timer throws (default: logged). `Stage` routes it into its guarded-step reporting. */
|
|
10
|
+
onError: (err: unknown) => void;
|
|
11
|
+
private readonly timers;
|
|
12
|
+
private readonly due;
|
|
13
|
+
/** Made once, so `update` hands `runDue` no fresh closure; reads `onError` late so it may be swapped any time. */
|
|
14
|
+
private readonly report;
|
|
5
15
|
delayedCall(ms: number, fn: () => void): {
|
|
6
16
|
remove: () => void;
|
|
7
17
|
};
|
|
18
|
+
/** Timers waiting to run (removed ones not yet swept included). */
|
|
19
|
+
get pending(): number;
|
|
8
20
|
update(now: number): void;
|
|
9
21
|
clear(): void;
|
|
10
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../src/core/Clock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../src/core/Clock.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,qBAAa,KAAK;IAChB,GAAG,SAAqB;IACxB,+GAA+G;IAC/G,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAiD;IAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,kHAAkH;IAClH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IAEpE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE;IAM/D,mEAAmE;IACnE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -16,10 +16,28 @@ export declare class Pointer {
|
|
|
16
16
|
worldX: number;
|
|
17
17
|
worldY: number;
|
|
18
18
|
private buttons;
|
|
19
|
+
/** Raw mouse travel (`movementX/Y`) summed since the last `takeMovement`, kept only while the pointer is locked. */
|
|
20
|
+
private moveX;
|
|
21
|
+
private moveY;
|
|
19
22
|
private readonly cleanup;
|
|
20
23
|
constructor(canvas: HTMLCanvasElement);
|
|
21
24
|
leftButtonDown(): boolean;
|
|
22
25
|
rightButtonDown(): boolean;
|
|
26
|
+
/** True while the canvas holds the pointer (`lock`). */
|
|
27
|
+
get locked(): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Locks the pointer to the canvas for mouse-look: the cursor hides and `takeMovement` returns how far the mouse went.
|
|
30
|
+
* Call from a press or key handler (browsers allow it only in a gesture); resolves whether the lock holds.
|
|
31
|
+
*/
|
|
32
|
+
lock(options?: {
|
|
33
|
+
raw?: boolean;
|
|
34
|
+
}): Promise<boolean>;
|
|
35
|
+
unlock(): void;
|
|
36
|
+
/** The mouse travel (CSS pixels) since the last call while locked, then zeroed; read it once per step. */
|
|
37
|
+
takeMovement(): {
|
|
38
|
+
x: number;
|
|
39
|
+
y: number;
|
|
40
|
+
};
|
|
23
41
|
updateWorldPoint(cam: Camera): void;
|
|
24
42
|
destroy(): void;
|
|
25
43
|
private track;
|