1681-engine 0.0.0-stage → 0.5.8
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 +304 -0
- package/LICENSE +21 -0
- package/README.md +164 -2
- package/dist/1681-engine.js +417 -0
- package/dist/1681-engine.js.map +1 -0
- package/dist/ambient/ColorGrade.js +41 -0
- package/dist/ambient/ColorGrade.js.map +1 -0
- package/dist/ambient/DayClock.js +57 -0
- package/dist/ambient/DayClock.js.map +1 -0
- package/dist/ambient/WeatherLayer.js +91 -0
- package/dist/ambient/WeatherLayer.js.map +1 -0
- package/dist/ambient/grade.js +13 -0
- package/dist/ambient/grade.js.map +1 -0
- package/dist/ambient/weather.js +52 -0
- package/dist/ambient/weather.js.map +1 -0
- package/dist/anim/AnimStateMachine.js +164 -0
- package/dist/anim/AnimStateMachine.js.map +1 -0
- package/dist/anim/Animator.js +67 -0
- package/dist/anim/Animator.js.map +1 -0
- package/dist/anim/animStateCompile.js +113 -0
- package/dist/anim/animStateCompile.js.map +1 -0
- package/dist/anim/animStateSystem.js +17 -0
- package/dist/anim/animStateSystem.js.map +1 -0
- package/dist/anim/animationSystem.js +15 -0
- package/dist/anim/animationSystem.js.map +1 -0
- package/dist/anim/asepriteSlices.js +22 -0
- package/dist/anim/asepriteSlices.js.map +1 -0
- package/dist/anim/asepriteTags.js +35 -0
- package/dist/anim/asepriteTags.js.map +1 -0
- package/dist/anim/parseAseprite.js +83 -0
- package/dist/anim/parseAseprite.js.map +1 -0
- package/dist/assets/AssetLoader.js +104 -0
- package/dist/assets/AssetLoader.js.map +1 -0
- package/dist/assets/loadAseprite.js +50 -0
- package/dist/assets/loadAseprite.js.map +1 -0
- package/dist/assets/takeCleanerWorker-DTcI_Jqr.js +31 -0
- package/dist/assets/takeCleanerWorker-DTcI_Jqr.js.map +1 -0
- package/dist/audio/Footsteps.js +26 -0
- package/dist/audio/Footsteps.js.map +1 -0
- package/dist/audio/MusicPlayer.js +78 -0
- package/dist/audio/MusicPlayer.js.map +1 -0
- package/dist/audio/SoundEngine.js +119 -0
- package/dist/audio/SoundEngine.js.map +1 -0
- package/dist/audio/cleanTake.js +30 -0
- package/dist/audio/cleanTake.js.map +1 -0
- package/dist/audio/music/ElementVoice.js +35 -0
- package/dist/audio/music/ElementVoice.js.map +1 -0
- package/dist/audio/music/GraphVoice.js +39 -0
- package/dist/audio/music/GraphVoice.js.map +1 -0
- package/dist/audio/music/MusicChannel.js +58 -0
- package/dist/audio/music/MusicChannel.js.map +1 -0
- package/dist/audio/music/musicVoice.js +13 -0
- package/dist/audio/music/musicVoice.js.map +1 -0
- package/dist/audio/sampleBank.js +82 -0
- package/dist/audio/sampleBank.js.map +1 -0
- package/dist/audio/soundTable.js +9 -0
- package/dist/audio/soundTable.js.map +1 -0
- package/dist/audio/synth.js +36 -0
- package/dist/audio/synth.js.map +1 -0
- package/dist/core/BitmapLabel.js +49 -0
- package/dist/core/BitmapLabel.js.map +1 -0
- package/dist/core/Camera.js +150 -0
- package/dist/core/Camera.js.map +1 -0
- package/dist/core/Clock.js +30 -0
- package/dist/core/Clock.js.map +1 -0
- package/dist/core/Graphics.js +69 -0
- package/dist/core/Graphics.js.map +1 -0
- package/dist/core/Group.js +29 -0
- package/dist/core/Group.js.map +1 -0
- package/dist/core/Image.js +51 -0
- package/dist/core/Image.js.map +1 -0
- package/dist/core/ObjectFactory.js +55 -0
- package/dist/core/ObjectFactory.js.map +1 -0
- package/dist/core/Pointer.js +58 -0
- package/dist/core/Pointer.js.map +1 -0
- package/dist/core/Rectangle.js +51 -0
- package/dist/core/Rectangle.js.map +1 -0
- package/dist/core/Stage.js +86 -0
- package/dist/core/Stage.js.map +1 -0
- package/dist/core/Text.js +22 -0
- package/dist/core/Text.js.map +1 -0
- package/dist/core/TextureRegistry.js +111 -0
- package/dist/core/TextureRegistry.js.map +1 -0
- package/dist/core/Timeline.js +211 -0
- package/dist/core/Timeline.js.map +1 -0
- package/dist/core/TimelineBuilder.js +73 -0
- package/dist/core/TimelineBuilder.js.map +1 -0
- package/dist/core/TimelineChild.js +84 -0
- package/dist/core/TimelineChild.js.map +1 -0
- package/dist/core/Tweener.js +136 -0
- package/dist/core/Tweener.js.map +1 -0
- package/dist/core/atlas.js +38 -0
- package/dist/core/atlas.js.map +1 -0
- package/dist/core/atlasPlan.js +22 -0
- package/dist/core/atlasPlan.js.map +1 -0
- package/dist/core/eases.js +21 -0
- package/dist/core/eases.js.map +1 -0
- package/dist/core/gameObject.js +115 -0
- package/dist/core/gameObject.js.map +1 -0
- package/dist/core/pixiPatches.js +18 -0
- package/dist/core/pixiPatches.js.map +1 -0
- package/dist/core/timelinePlace.js +24 -0
- package/dist/core/timelinePlace.js.map +1 -0
- package/dist/core/tweenProps.js +12 -0
- package/dist/core/tweenProps.js.map +1 -0
- package/dist/debug/DebugOverlay.js +94 -0
- package/dist/debug/DebugOverlay.js.map +1 -0
- package/dist/debug/DrawCallCounter.js +41 -0
- package/dist/debug/DrawCallCounter.js.map +1 -0
- package/dist/debug/ErrorLog.js +22 -0
- package/dist/debug/ErrorLog.js.map +1 -0
- package/dist/debug/FrameStats.js +42 -0
- package/dist/debug/FrameStats.js.map +1 -0
- package/dist/debug/inspectWorld.js +29 -0
- package/dist/debug/inspectWorld.js.map +1 -0
- package/dist/diagnostics/ErrorDeduper.js +27 -0
- package/dist/diagnostics/ErrorDeduper.js.map +1 -0
- package/dist/diagnostics/FrameSampler.js +42 -0
- package/dist/diagnostics/FrameSampler.js.map +1 -0
- package/dist/diagnostics/bootWatch.js +21 -0
- package/dist/diagnostics/bootWatch.js.map +1 -0
- package/dist/diagnostics/captureErrors.js +27 -0
- package/dist/diagnostics/captureErrors.js.map +1 -0
- package/dist/diagnostics/contextLoss.js +25 -0
- package/dist/diagnostics/contextLoss.js.map +1 -0
- package/dist/diagnostics/frameStats.js +31 -0
- package/dist/diagnostics/frameStats.js.map +1 -0
- package/dist/diagnostics/gpuInfo.js +22 -0
- package/dist/diagnostics/gpuInfo.js.map +1 -0
- package/dist/diagnostics/renderGuard.js +24 -0
- package/dist/diagnostics/renderGuard.js.map +1 -0
- package/dist/ecs/SparseSet.js +55 -0
- package/dist/ecs/SparseSet.js.map +1 -0
- package/dist/ecs/World.js +307 -0
- package/dist/ecs/World.js.map +1 -0
- package/dist/ecs/fields.js +26 -0
- package/dist/ecs/fields.js.map +1 -0
- package/dist/engine/Engine.js +82 -0
- package/dist/engine/Engine.js.map +1 -0
- package/dist/engine/FixedLoop.js +37 -0
- package/dist/engine/FixedLoop.js.map +1 -0
- package/dist/engine/Scene.js +79 -0
- package/dist/engine/Scene.js.map +1 -0
- package/dist/engine/SceneManager.js +73 -0
- package/dist/engine/SceneManager.js.map +1 -0
- package/dist/events/EventBus.js +42 -0
- package/dist/events/EventBus.js.map +1 -0
- package/dist/fx/FloatingText.js +72 -0
- package/dist/fx/FloatingText.js.map +1 -0
- package/dist/fx/hitStop.js +28 -0
- package/dist/fx/hitStop.js.map +1 -0
- package/dist/fx/viewCull.js +10 -0
- package/dist/fx/viewCull.js.map +1 -0
- package/dist/i18n/Translator.js +72 -0
- package/dist/i18n/Translator.js.map +1 -0
- package/dist/i18n/extractStrings.js +58 -0
- package/dist/i18n/extractStrings.js.map +1 -0
- package/dist/i18n/formatMessage.js +19 -0
- package/dist/i18n/formatMessage.js.map +1 -0
- package/dist/input/Actions.js +131 -0
- package/dist/input/Actions.js.map +1 -0
- package/dist/input/AimGesture.js +75 -0
- package/dist/input/AimGesture.js.map +1 -0
- package/dist/input/Keyboard.js +54 -0
- package/dist/input/Keyboard.js.map +1 -0
- package/dist/input/Keymap.js +171 -0
- package/dist/input/Keymap.js.map +1 -0
- package/dist/input/TargetLock.js +73 -0
- package/dist/input/TargetLock.js.map +1 -0
- package/dist/input/aimAxis.js +8 -0
- package/dist/input/aimAxis.js.map +1 -0
- package/dist/input/keyChord.js +29 -0
- package/dist/input/keyChord.js.map +1 -0
- package/dist/input/longPress.js +32 -0
- package/dist/input/longPress.js.map +1 -0
- package/dist/input/stickAxis.js +23 -0
- package/dist/input/stickAxis.js.map +1 -0
- package/dist/input/touchDetect.js +7 -0
- package/dist/input/touchDetect.js.map +1 -0
- package/dist/light/LightLayer.js +84 -0
- package/dist/light/LightLayer.js.map +1 -0
- package/dist/nav/MinHeap.js +39 -0
- package/dist/nav/MinHeap.js.map +1 -0
- package/dist/nav/findPath.js +78 -0
- package/dist/nav/findPath.js.map +1 -0
- package/dist/nav/navGrid.js +36 -0
- package/dist/nav/navGrid.js.map +1 -0
- package/dist/nav/nearestOpen.js +19 -0
- package/dist/nav/nearestOpen.js.map +1 -0
- package/dist/nav/straightenPath.js +51 -0
- package/dist/nav/straightenPath.js.map +1 -0
- package/dist/net/Connection.js +84 -0
- package/dist/net/Connection.js.map +1 -0
- package/dist/net/InterpolationBuffer.js +57 -0
- package/dist/net/InterpolationBuffer.js.map +1 -0
- package/dist/net/PredictedMover.js +61 -0
- package/dist/net/PredictedMover.js.map +1 -0
- package/dist/net/Room.js +92 -0
- package/dist/net/Room.js.map +1 -0
- package/dist/net/RoomHost.js +101 -0
- package/dist/net/RoomHost.js.map +1 -0
- package/dist/net/cadence.js +22 -0
- package/dist/net/cadence.js.map +1 -0
- package/dist/net/constants.js +11 -0
- package/dist/net/constants.js.map +1 -0
- package/dist/net/lobby/LobbyClient.js +124 -0
- package/dist/net/lobby/LobbyClient.js.map +1 -0
- package/dist/net/lobby/LobbyHost.js +366 -0
- package/dist/net/lobby/LobbyHost.js.map +1 -0
- package/dist/net/lobby/LobbyRooms.js +66 -0
- package/dist/net/lobby/LobbyRooms.js.map +1 -0
- package/dist/net/lobby/Matchmaker.js +106 -0
- package/dist/net/lobby/Matchmaker.js.map +1 -0
- package/dist/net/movement.js +83 -0
- package/dist/net/movement.js.map +1 -0
- package/dist/net/protocol.js +11 -0
- package/dist/net/protocol.js.map +1 -0
- package/dist/net/serverClock.js +22 -0
- package/dist/net/serverClock.js.map +1 -0
- package/dist/net/snapshotCodec.js +92 -0
- package/dist/net/snapshotCodec.js.map +1 -0
- package/dist/parallax/Parallax.js +32 -0
- package/dist/parallax/Parallax.js.map +1 -0
- package/dist/parallax/ParallaxLayer.js +70 -0
- package/dist/parallax/ParallaxLayer.js.map +1 -0
- package/dist/parallax/parallaxMath.js +27 -0
- package/dist/parallax/parallaxMath.js.map +1 -0
- package/dist/particles/Emitter.js +108 -0
- package/dist/particles/Emitter.js.map +1 -0
- package/dist/particles/ParticleBudget.js +32 -0
- package/dist/particles/ParticleBudget.js.map +1 -0
- package/dist/particles/ParticleSim.js +60 -0
- package/dist/particles/ParticleSim.js.map +1 -0
- package/dist/particles/particleCurves.js +48 -0
- package/dist/particles/particleCurves.js.map +1 -0
- package/dist/particles/particleSampling.js +30 -0
- package/dist/particles/particleSampling.js.map +1 -0
- package/dist/physics/Body.js +202 -0
- package/dist/physics/Body.js.map +1 -0
- package/dist/physics/BroadPhase.js +56 -0
- package/dist/physics/BroadPhase.js.map +1 -0
- package/dist/physics/Contact.js +76 -0
- package/dist/physics/Contact.js.map +1 -0
- package/dist/physics/ContactSolver.js +70 -0
- package/dist/physics/ContactSolver.js.map +1 -0
- package/dist/physics/PhysicsWorld.js +221 -0
- package/dist/physics/PhysicsWorld.js.map +1 -0
- package/dist/physics/SpatialHash.js +39 -0
- package/dist/physics/SpatialHash.js.map +1 -0
- package/dist/physics/collide.js +76 -0
- package/dist/physics/collide.js.map +1 -0
- package/dist/physics/collidePolygon.js +94 -0
- package/dist/physics/collidePolygon.js.map +1 -0
- package/dist/physics/contactReport.js +14 -0
- package/dist/physics/contactReport.js.map +1 -0
- package/dist/physics/drawColliders.js +31 -0
- package/dist/physics/drawColliders.js.map +1 -0
- package/dist/physics/physicsSystem.js +8 -0
- package/dist/physics/physicsSystem.js.map +1 -0
- package/dist/physics/polygon.js +80 -0
- package/dist/physics/polygon.js.map +1 -0
- package/dist/physics/raycast.js +62 -0
- package/dist/physics/raycast.js.map +1 -0
- package/dist/physics/syncToBody.js +19 -0
- package/dist/physics/syncToBody.js.map +1 -0
- package/dist/physics/tileBodies.js +59 -0
- package/dist/physics/tileBodies.js.map +1 -0
- package/dist/physics/types.js +8 -0
- package/dist/physics/types.js.map +1 -0
- package/dist/pixel/Darkness.js +166 -0
- package/dist/pixel/Darkness.js.map +1 -0
- package/dist/pixel/DitherVignette.js +57 -0
- package/dist/pixel/DitherVignette.js.map +1 -0
- package/dist/pixel/Evaporation.js +85 -0
- package/dist/pixel/Evaporation.js.map +1 -0
- package/dist/pixel/NightShade.js +34 -0
- package/dist/pixel/NightShade.js.map +1 -0
- package/dist/pixel/PixelLayer.js +211 -0
- package/dist/pixel/PixelLayer.js.map +1 -0
- package/dist/pixel/SwayProp.js +75 -0
- package/dist/pixel/SwayProp.js.map +1 -0
- package/dist/pixel/lights.js +44 -0
- package/dist/pixel/lights.js.map +1 -0
- package/dist/pixel/nineSlice.js +62 -0
- package/dist/pixel/nineSlice.js.map +1 -0
- package/dist/pixel/paintLayer.js +36 -0
- package/dist/pixel/paintLayer.js.map +1 -0
- package/dist/pixel/palette.js +57 -0
- package/dist/pixel/palette.js.map +1 -0
- package/dist/pixel/pixel.js +278 -0
- package/dist/pixel/pixel.js.map +1 -0
- package/dist/pixel/pixelPaint.js +194 -0
- package/dist/pixel/pixelPaint.js.map +1 -0
- package/dist/pixel/pixelTone.js +164 -0
- package/dist/pixel/pixelTone.js.map +1 -0
- package/dist/pixel/propKit.js +41 -0
- package/dist/pixel/propKit.js.map +1 -0
- package/dist/pixel/ramp.js +102 -0
- package/dist/pixel/ramp.js.map +1 -0
- package/dist/pixel/selout.js +35 -0
- package/dist/pixel/selout.js.map +1 -0
- package/dist/pixel/spritePixels.js +59 -0
- package/dist/pixel/spritePixels.js.map +1 -0
- package/dist/pixel/swayRig.js +87 -0
- package/dist/pixel/swayRig.js.map +1 -0
- package/dist/pixel/vignetteMask.js +24 -0
- package/dist/pixel/vignetteMask.js.map +1 -0
- package/dist/pixel/weatherArt.js +61 -0
- package/dist/pixel/weatherArt.js.map +1 -0
- package/dist/pixel.js +90 -0
- package/dist/pixel.js.map +1 -0
- package/dist/platform/touch.js +33 -0
- package/dist/platform/touch.js.map +1 -0
- package/dist/postfx/BloomFilter.js +65 -0
- package/dist/postfx/BloomFilter.js.map +1 -0
- package/dist/postfx/ChromaticAberrationFilter.js +25 -0
- package/dist/postfx/ChromaticAberrationFilter.js.map +1 -0
- package/dist/postfx/ColorAdjustFilter.js +76 -0
- package/dist/postfx/ColorAdjustFilter.js.map +1 -0
- package/dist/postfx/CrtFilter.js +42 -0
- package/dist/postfx/CrtFilter.js.map +1 -0
- package/dist/postfx/PixelateFilter.js +27 -0
- package/dist/postfx/PixelateFilter.js.map +1 -0
- package/dist/postfx/PostFx.js +123 -0
- package/dist/postfx/PostFx.js.map +1 -0
- package/dist/postfx/ShockwaveFilter.js +49 -0
- package/dist/postfx/ShockwaveFilter.js.map +1 -0
- package/dist/postfx/VignetteFilter.js +37 -0
- package/dist/postfx/VignetteFilter.js.map +1 -0
- package/dist/postfx/fxAnimator.js +38 -0
- package/dist/postfx/fxAnimator.js.map +1 -0
- package/dist/postfx/fxShader.js +128 -0
- package/dist/postfx/fxShader.js.map +1 -0
- package/dist/postfx.js +26 -0
- package/dist/postfx.js.map +1 -0
- package/dist/react/ChoiceDialog.js +51 -0
- package/dist/react/ChoiceDialog.js.map +1 -0
- package/dist/react/ConfirmDialog.js +53 -0
- package/dist/react/ConfirmDialog.js.map +1 -0
- package/dist/react/Glyph.js +63 -0
- package/dist/react/Glyph.js.map +1 -0
- package/dist/react/Modal.js +38 -0
- package/dist/react/Modal.js.map +1 -0
- package/dist/react/Panel.js +24 -0
- package/dist/react/Panel.js.map +1 -0
- package/dist/react/PixelImage.js +24 -0
- package/dist/react/PixelImage.js.map +1 -0
- package/dist/react/Select.js +99 -0
- package/dist/react/Select.js.map +1 -0
- package/dist/react/Slider.js +62 -0
- package/dist/react/Slider.js.map +1 -0
- package/dist/react/SplitPane.js +24 -0
- package/dist/react/SplitPane.js.map +1 -0
- package/dist/react/TabStrip.js +32 -0
- package/dist/react/TabStrip.js.map +1 -0
- package/dist/react/TitleTips.js +42 -0
- package/dist/react/TitleTips.js.map +1 -0
- package/dist/react/Tooltip.js +28 -0
- package/dist/react/Tooltip.js.map +1 -0
- package/dist/react/UiProvider.js +50 -0
- package/dist/react/UiProvider.js.map +1 -0
- package/dist/react/baseCss.js +222 -0
- package/dist/react/baseCss.js.map +1 -0
- package/dist/react/choiceStore.js +23 -0
- package/dist/react/choiceStore.js.map +1 -0
- package/dist/react/classNames.js +19 -0
- package/dist/react/classNames.js.map +1 -0
- package/dist/react/confirmStore.js +30 -0
- package/dist/react/confirmStore.js.map +1 -0
- package/dist/react/labels.js +18 -0
- package/dist/react/labels.js.map +1 -0
- package/dist/react/placement.js +49 -0
- package/dist/react/placement.js.map +1 -0
- package/dist/react/useFillSheet.js +23 -0
- package/dist/react/useFillSheet.js.map +1 -0
- package/dist/react/useFitToViewport.js +29 -0
- package/dist/react/useFitToViewport.js.map +1 -0
- package/dist/react/usePicked.js +13 -0
- package/dist/react/usePicked.js.map +1 -0
- package/dist/react/useStore.js +9 -0
- package/dist/react/useStore.js.map +1 -0
- package/dist/react/useViewport.js +17 -0
- package/dist/react/useViewport.js.map +1 -0
- package/dist/react.js +78 -0
- package/dist/react.js.map +1 -0
- package/dist/rig/PosePlayer.js +92 -0
- package/dist/rig/PosePlayer.js.map +1 -0
- package/dist/rig/RigView.js +125 -0
- package/dist/rig/RigView.js.map +1 -0
- package/dist/rig/Skeleton.js +31 -0
- package/dist/rig/Skeleton.js.map +1 -0
- package/dist/rig/humanoid.js +6 -0
- package/dist/rig/humanoid.js.map +1 -0
- package/dist/rig/humanoid.json.js +30 -0
- package/dist/rig/humanoid.json.js.map +1 -0
- package/dist/rig/humanoidPoses.js +30 -0
- package/dist/rig/humanoidPoses.js.map +1 -0
- package/dist/rig/poseMath.js +54 -0
- package/dist/rig/poseMath.js.map +1 -0
- package/dist/rig/poses.json.js +150 -0
- package/dist/rig/poses.json.js.map +1 -0
- package/dist/save/Autosaver.js +54 -0
- package/dist/save/Autosaver.js.map +1 -0
- package/dist/save/MemoryBackend.js +19 -0
- package/dist/save/MemoryBackend.js.map +1 -0
- package/dist/save/SaveStore.js +103 -0
- package/dist/save/SaveStore.js.map +1 -0
- package/dist/save/WebStorageBackend.js +27 -0
- package/dist/save/WebStorageBackend.js.map +1 -0
- package/dist/save/checksum.js +10 -0
- package/dist/save/checksum.js.map +1 -0
- package/dist/save/migrateSave.js +27 -0
- package/dist/save/migrateSave.js.map +1 -0
- package/dist/settings.js +27 -0
- package/dist/settings.js.map +1 -0
- package/dist/tilemap/TilemapView.js +69 -0
- package/dist/tilemap/TilemapView.js.map +1 -0
- package/dist/tilemap/collision.js +25 -0
- package/dist/tilemap/collision.js.map +1 -0
- package/dist/tilemap/tiled.js +138 -0
- package/dist/tilemap/tiled.js.map +1 -0
- package/dist/transitions/CrossfadeTransition.js +24 -0
- package/dist/transitions/CrossfadeTransition.js.map +1 -0
- package/dist/transitions/DitherWipeTransition.js +70 -0
- package/dist/transitions/DitherWipeTransition.js.map +1 -0
- package/dist/transitions/FadeTransition.js +34 -0
- package/dist/transitions/FadeTransition.js.map +1 -0
- package/dist/transitions/Letterbox.js +42 -0
- package/dist/transitions/Letterbox.js.map +1 -0
- package/dist/transitions/ditherMask.js +15 -0
- package/dist/transitions/ditherMask.js.map +1 -0
- package/dist/transitions/transitionTo.js +28 -0
- package/dist/transitions/transitionTo.js.map +1 -0
- package/dist/transitions/tweenDone.js +15 -0
- package/dist/transitions/tweenDone.js.map +1 -0
- package/dist/types/ambient/ColorGrade.d.ts +41 -0
- package/dist/types/ambient/ColorGrade.d.ts.map +1 -0
- package/dist/types/ambient/DayClock.d.ts +80 -0
- package/dist/types/ambient/DayClock.d.ts.map +1 -0
- package/dist/types/ambient/WeatherLayer.d.ts +78 -0
- package/dist/types/ambient/WeatherLayer.d.ts.map +1 -0
- package/dist/types/ambient/grade.d.ts +22 -0
- package/dist/types/ambient/grade.d.ts.map +1 -0
- package/dist/types/ambient/weather.d.ts +49 -0
- package/dist/types/ambient/weather.d.ts.map +1 -0
- package/dist/types/anim/AnimStateMachine.d.ts +80 -0
- package/dist/types/anim/AnimStateMachine.d.ts.map +1 -0
- package/dist/types/anim/Animator.d.ts +50 -0
- package/dist/types/anim/Animator.d.ts.map +1 -0
- package/dist/types/anim/animStateCompile.d.ts +52 -0
- package/dist/types/anim/animStateCompile.d.ts.map +1 -0
- package/dist/types/anim/animStateSystem.d.ts +10 -0
- package/dist/types/anim/animStateSystem.d.ts.map +1 -0
- package/dist/types/anim/animStateTypes.d.ts +50 -0
- package/dist/types/anim/animStateTypes.d.ts.map +1 -0
- package/dist/types/anim/animationSystem.d.ts +13 -0
- package/dist/types/anim/animationSystem.d.ts.map +1 -0
- package/dist/types/anim/asepriteSlices.d.ts +19 -0
- package/dist/types/anim/asepriteSlices.d.ts.map +1 -0
- package/dist/types/anim/asepriteTags.d.ts +16 -0
- package/dist/types/anim/asepriteTags.d.ts.map +1 -0
- package/dist/types/anim/asepriteTypes.d.ts +159 -0
- package/dist/types/anim/asepriteTypes.d.ts.map +1 -0
- package/dist/types/anim/parseAseprite.d.ts +21 -0
- package/dist/types/anim/parseAseprite.d.ts.map +1 -0
- package/dist/types/assets/AssetLoader.d.ts +85 -0
- package/dist/types/assets/AssetLoader.d.ts.map +1 -0
- package/dist/types/assets/loadAseprite.d.ts +27 -0
- package/dist/types/assets/loadAseprite.d.ts.map +1 -0
- package/dist/types/audio/Footsteps.d.ts +33 -0
- package/dist/types/audio/Footsteps.d.ts.map +1 -0
- package/dist/types/audio/MusicPlayer.d.ts +65 -0
- package/dist/types/audio/MusicPlayer.d.ts.map +1 -0
- package/dist/types/audio/SoundEngine.d.ts +42 -0
- package/dist/types/audio/SoundEngine.d.ts.map +1 -0
- package/dist/types/audio/cleanTake.d.ts +3 -0
- package/dist/types/audio/cleanTake.d.ts.map +1 -0
- package/dist/types/audio/music/ElementVoice.d.ts +14 -0
- package/dist/types/audio/music/ElementVoice.d.ts.map +1 -0
- package/dist/types/audio/music/GraphVoice.d.ts +22 -0
- package/dist/types/audio/music/GraphVoice.d.ts.map +1 -0
- package/dist/types/audio/music/MusicChannel.d.ts +35 -0
- package/dist/types/audio/music/MusicChannel.d.ts.map +1 -0
- package/dist/types/audio/music/musicVoice.d.ts +26 -0
- package/dist/types/audio/music/musicVoice.d.ts.map +1 -0
- package/dist/types/audio/sampleBank.d.ts +27 -0
- package/dist/types/audio/sampleBank.d.ts.map +1 -0
- package/dist/types/audio/soundTable.d.ts +14 -0
- package/dist/types/audio/soundTable.d.ts.map +1 -0
- package/dist/types/audio/synth.d.ts +34 -0
- package/dist/types/audio/synth.d.ts.map +1 -0
- package/dist/types/audio/takeCleanerWorker.d.ts +2 -0
- package/dist/types/audio/takeCleanerWorker.d.ts.map +1 -0
- package/dist/types/core/BitmapLabel.d.ts +36 -0
- package/dist/types/core/BitmapLabel.d.ts.map +1 -0
- package/dist/types/core/Camera.d.ts +115 -0
- package/dist/types/core/Camera.d.ts.map +1 -0
- package/dist/types/core/Clock.d.ts +11 -0
- package/dist/types/core/Clock.d.ts.map +1 -0
- package/dist/types/core/Graphics.d.ts +37 -0
- package/dist/types/core/Graphics.d.ts.map +1 -0
- package/dist/types/core/Group.d.ts +15 -0
- package/dist/types/core/Group.d.ts.map +1 -0
- package/dist/types/core/Image.d.ts +25 -0
- package/dist/types/core/Image.d.ts.map +1 -0
- package/dist/types/core/ObjectFactory.d.ts +34 -0
- package/dist/types/core/ObjectFactory.d.ts.map +1 -0
- package/dist/types/core/Pointer.d.ts +27 -0
- package/dist/types/core/Pointer.d.ts.map +1 -0
- package/dist/types/core/Rectangle.d.ts +26 -0
- package/dist/types/core/Rectangle.d.ts.map +1 -0
- package/dist/types/core/Stage.d.ts +58 -0
- package/dist/types/core/Stage.d.ts.map +1 -0
- package/dist/types/core/Text.d.ts +22 -0
- package/dist/types/core/Text.d.ts.map +1 -0
- package/dist/types/core/TextureRegistry.d.ts +51 -0
- package/dist/types/core/TextureRegistry.d.ts.map +1 -0
- package/dist/types/core/Timeline.d.ts +115 -0
- package/dist/types/core/Timeline.d.ts.map +1 -0
- package/dist/types/core/TimelineBuilder.d.ts +53 -0
- package/dist/types/core/TimelineBuilder.d.ts.map +1 -0
- package/dist/types/core/TimelineChild.d.ts +51 -0
- package/dist/types/core/TimelineChild.d.ts.map +1 -0
- package/dist/types/core/Tweener.d.ts +70 -0
- package/dist/types/core/Tweener.d.ts.map +1 -0
- package/dist/types/core/atlas.d.ts +16 -0
- package/dist/types/core/atlas.d.ts.map +1 -0
- package/dist/types/core/atlasPlan.d.ts +34 -0
- package/dist/types/core/atlasPlan.d.ts.map +1 -0
- package/dist/types/core/eases.d.ts +3 -0
- package/dist/types/core/eases.d.ts.map +1 -0
- package/dist/types/core/gameObject.d.ts +42 -0
- package/dist/types/core/gameObject.d.ts.map +1 -0
- package/dist/types/core/pixiPatches.d.ts +9 -0
- package/dist/types/core/pixiPatches.d.ts.map +1 -0
- package/dist/types/core/timelinePlace.d.ts +23 -0
- package/dist/types/core/timelinePlace.d.ts.map +1 -0
- package/dist/types/core/tweenProps.d.ts +8 -0
- package/dist/types/core/tweenProps.d.ts.map +1 -0
- package/dist/types/core/types.d.ts +4 -0
- package/dist/types/core/types.d.ts.map +1 -0
- package/dist/types/debug/DebugOverlay.d.ts +63 -0
- package/dist/types/debug/DebugOverlay.d.ts.map +1 -0
- package/dist/types/debug/DrawCallCounter.d.ts +20 -0
- package/dist/types/debug/DrawCallCounter.d.ts.map +1 -0
- package/dist/types/debug/ErrorLog.d.ts +20 -0
- package/dist/types/debug/ErrorLog.d.ts.map +1 -0
- package/dist/types/debug/FrameStats.d.ts +21 -0
- package/dist/types/debug/FrameStats.d.ts.map +1 -0
- package/dist/types/debug/inspectWorld.d.ts +14 -0
- package/dist/types/debug/inspectWorld.d.ts.map +1 -0
- package/dist/types/diagnostics/ErrorDeduper.d.ts +17 -0
- package/dist/types/diagnostics/ErrorDeduper.d.ts.map +1 -0
- package/dist/types/diagnostics/FrameSampler.d.ts +37 -0
- package/dist/types/diagnostics/FrameSampler.d.ts.map +1 -0
- package/dist/types/diagnostics/bootWatch.d.ts +25 -0
- package/dist/types/diagnostics/bootWatch.d.ts.map +1 -0
- package/dist/types/diagnostics/captureErrors.d.ts +24 -0
- package/dist/types/diagnostics/captureErrors.d.ts.map +1 -0
- package/dist/types/diagnostics/contextLoss.d.ts +35 -0
- package/dist/types/diagnostics/contextLoss.d.ts.map +1 -0
- package/dist/types/diagnostics/frameStats.d.ts +30 -0
- package/dist/types/diagnostics/frameStats.d.ts.map +1 -0
- package/dist/types/diagnostics/gpuInfo.d.ts +9 -0
- package/dist/types/diagnostics/gpuInfo.d.ts.map +1 -0
- package/dist/types/diagnostics/renderGuard.d.ts +12 -0
- package/dist/types/diagnostics/renderGuard.d.ts.map +1 -0
- package/dist/types/ecs/SparseSet.d.ts +25 -0
- package/dist/types/ecs/SparseSet.d.ts.map +1 -0
- package/dist/types/ecs/World.d.ts +137 -0
- package/dist/types/ecs/World.d.ts.map +1 -0
- package/dist/types/ecs/fields.d.ts +34 -0
- package/dist/types/ecs/fields.d.ts.map +1 -0
- package/dist/types/engine/Engine.d.ts +80 -0
- package/dist/types/engine/Engine.d.ts.map +1 -0
- package/dist/types/engine/FixedLoop.d.ts +32 -0
- package/dist/types/engine/FixedLoop.d.ts.map +1 -0
- package/dist/types/engine/Scene.d.ts +67 -0
- package/dist/types/engine/Scene.d.ts.map +1 -0
- package/dist/types/engine/SceneManager.d.ts +36 -0
- package/dist/types/engine/SceneManager.d.ts.map +1 -0
- package/dist/types/events/EventBus.d.ts +20 -0
- package/dist/types/events/EventBus.d.ts.map +1 -0
- package/dist/types/fx/FloatingText.d.ts +71 -0
- package/dist/types/fx/FloatingText.d.ts.map +1 -0
- package/dist/types/fx/hitStop.d.ts +20 -0
- package/dist/types/fx/hitStop.d.ts.map +1 -0
- package/dist/types/fx/viewCull.d.ts +14 -0
- package/dist/types/fx/viewCull.d.ts.map +1 -0
- package/dist/types/i18n/Translator.d.ts +52 -0
- package/dist/types/i18n/Translator.d.ts.map +1 -0
- package/dist/types/i18n/extractStrings.d.ts +25 -0
- package/dist/types/i18n/extractStrings.d.ts.map +1 -0
- package/dist/types/i18n/formatMessage.d.ts +10 -0
- package/dist/types/i18n/formatMessage.d.ts.map +1 -0
- package/dist/types/index.d.ts +149 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/input/Actions.d.ts +94 -0
- package/dist/types/input/Actions.d.ts.map +1 -0
- package/dist/types/input/AimGesture.d.ts +106 -0
- package/dist/types/input/AimGesture.d.ts.map +1 -0
- package/dist/types/input/Keyboard.d.ts +30 -0
- package/dist/types/input/Keyboard.d.ts.map +1 -0
- package/dist/types/input/Keymap.d.ts +85 -0
- package/dist/types/input/Keymap.d.ts.map +1 -0
- package/dist/types/input/TargetLock.d.ts +56 -0
- package/dist/types/input/TargetLock.d.ts.map +1 -0
- package/dist/types/input/aimAxis.d.ts +9 -0
- package/dist/types/input/aimAxis.d.ts.map +1 -0
- package/dist/types/input/keyChord.d.ts +15 -0
- package/dist/types/input/keyChord.d.ts.map +1 -0
- package/dist/types/input/longPress.d.ts +21 -0
- package/dist/types/input/longPress.d.ts.map +1 -0
- package/dist/types/input/stickAxis.d.ts +26 -0
- package/dist/types/input/stickAxis.d.ts.map +1 -0
- package/dist/types/input/touchDetect.d.ts +18 -0
- package/dist/types/input/touchDetect.d.ts.map +1 -0
- package/dist/types/light/LightLayer.d.ts +65 -0
- package/dist/types/light/LightLayer.d.ts.map +1 -0
- package/dist/types/nav/MinHeap.d.ts +15 -0
- package/dist/types/nav/MinHeap.d.ts.map +1 -0
- package/dist/types/nav/findPath.d.ts +38 -0
- package/dist/types/nav/findPath.d.ts.map +1 -0
- package/dist/types/nav/navGrid.d.ts +48 -0
- package/dist/types/nav/navGrid.d.ts.map +1 -0
- package/dist/types/nav/nearestOpen.d.ts +8 -0
- package/dist/types/nav/nearestOpen.d.ts.map +1 -0
- package/dist/types/nav/straightenPath.d.ts +13 -0
- package/dist/types/nav/straightenPath.d.ts.map +1 -0
- package/dist/types/net/Connection.d.ts +66 -0
- package/dist/types/net/Connection.d.ts.map +1 -0
- package/dist/types/net/InterpolationBuffer.d.ts +36 -0
- package/dist/types/net/InterpolationBuffer.d.ts.map +1 -0
- package/dist/types/net/PredictedMover.d.ts +43 -0
- package/dist/types/net/PredictedMover.d.ts.map +1 -0
- package/dist/types/net/Room.d.ts +69 -0
- package/dist/types/net/Room.d.ts.map +1 -0
- package/dist/types/net/RoomHost.d.ts +74 -0
- package/dist/types/net/RoomHost.d.ts.map +1 -0
- package/dist/types/net/cadence.d.ts +22 -0
- package/dist/types/net/cadence.d.ts.map +1 -0
- package/dist/types/net/constants.d.ts +24 -0
- package/dist/types/net/constants.d.ts.map +1 -0
- package/dist/types/net/lobby/LobbyClient.d.ts +107 -0
- package/dist/types/net/lobby/LobbyClient.d.ts.map +1 -0
- package/dist/types/net/lobby/LobbyHost.d.ts +147 -0
- package/dist/types/net/lobby/LobbyHost.d.ts.map +1 -0
- package/dist/types/net/lobby/LobbyRooms.d.ts +56 -0
- package/dist/types/net/lobby/LobbyRooms.d.ts.map +1 -0
- package/dist/types/net/lobby/Matchmaker.d.ts +57 -0
- package/dist/types/net/lobby/Matchmaker.d.ts.map +1 -0
- package/dist/types/net/lobby/index.d.ts +6 -0
- package/dist/types/net/lobby/index.d.ts.map +1 -0
- package/dist/types/net/lobby/lobbyProtocol.d.ts +143 -0
- package/dist/types/net/lobby/lobbyProtocol.d.ts.map +1 -0
- package/dist/types/net/movement.d.ts +50 -0
- package/dist/types/net/movement.d.ts.map +1 -0
- package/dist/types/net/protocol.d.ts +59 -0
- package/dist/types/net/protocol.d.ts.map +1 -0
- package/dist/types/net/serverClock.d.ts +14 -0
- package/dist/types/net/serverClock.d.ts.map +1 -0
- package/dist/types/net/snapshotCodec.d.ts +55 -0
- package/dist/types/net/snapshotCodec.d.ts.map +1 -0
- package/dist/types/parallax/Parallax.d.ts +37 -0
- package/dist/types/parallax/Parallax.d.ts.map +1 -0
- package/dist/types/parallax/ParallaxLayer.d.ts +80 -0
- package/dist/types/parallax/ParallaxLayer.d.ts.map +1 -0
- package/dist/types/parallax/parallaxMath.d.ts +50 -0
- package/dist/types/parallax/parallaxMath.d.ts.map +1 -0
- package/dist/types/particles/Emitter.d.ts +97 -0
- package/dist/types/particles/Emitter.d.ts.map +1 -0
- package/dist/types/particles/ParticleBudget.d.ts +28 -0
- package/dist/types/particles/ParticleBudget.d.ts.map +1 -0
- package/dist/types/particles/ParticleSim.d.ts +38 -0
- package/dist/types/particles/ParticleSim.d.ts.map +1 -0
- package/dist/types/particles/particleCurves.d.ts +21 -0
- package/dist/types/particles/particleCurves.d.ts.map +1 -0
- package/dist/types/particles/particleSampling.d.ts +20 -0
- package/dist/types/particles/particleSampling.d.ts.map +1 -0
- package/dist/types/physics/Body.d.ts +130 -0
- package/dist/types/physics/Body.d.ts.map +1 -0
- package/dist/types/physics/BroadPhase.d.ts +26 -0
- package/dist/types/physics/BroadPhase.d.ts.map +1 -0
- package/dist/types/physics/Contact.d.ts +62 -0
- package/dist/types/physics/Contact.d.ts.map +1 -0
- package/dist/types/physics/ContactSolver.d.ts +29 -0
- package/dist/types/physics/ContactSolver.d.ts.map +1 -0
- package/dist/types/physics/PhysicsWorld.d.ts +78 -0
- package/dist/types/physics/PhysicsWorld.d.ts.map +1 -0
- package/dist/types/physics/PhysicsWorldOptions.d.ts +24 -0
- package/dist/types/physics/PhysicsWorldOptions.d.ts.map +1 -0
- package/dist/types/physics/SpatialHash.d.ts +23 -0
- package/dist/types/physics/SpatialHash.d.ts.map +1 -0
- package/dist/types/physics/collide.d.ts +27 -0
- package/dist/types/physics/collide.d.ts.map +1 -0
- package/dist/types/physics/collidePolygon.d.ts +14 -0
- package/dist/types/physics/collidePolygon.d.ts.map +1 -0
- package/dist/types/physics/contactReport.d.ts +8 -0
- package/dist/types/physics/contactReport.d.ts.map +1 -0
- package/dist/types/physics/drawColliders.d.ts +43 -0
- package/dist/types/physics/drawColliders.d.ts.map +1 -0
- package/dist/types/physics/physicsSystem.d.ts +5 -0
- package/dist/types/physics/physicsSystem.d.ts.map +1 -0
- package/dist/types/physics/polygon.d.ts +28 -0
- package/dist/types/physics/polygon.d.ts.map +1 -0
- package/dist/types/physics/raycast.d.ts +19 -0
- package/dist/types/physics/raycast.d.ts.map +1 -0
- package/dist/types/physics/syncToBody.d.ts +16 -0
- package/dist/types/physics/syncToBody.d.ts.map +1 -0
- package/dist/types/physics/tileBodies.d.ts +36 -0
- package/dist/types/physics/tileBodies.d.ts.map +1 -0
- package/dist/types/physics/types.d.ts +116 -0
- package/dist/types/physics/types.d.ts.map +1 -0
- package/dist/types/pixel/Darkness.d.ts +78 -0
- package/dist/types/pixel/Darkness.d.ts.map +1 -0
- package/dist/types/pixel/DitherVignette.d.ts +35 -0
- package/dist/types/pixel/DitherVignette.d.ts.map +1 -0
- package/dist/types/pixel/Evaporation.d.ts +30 -0
- package/dist/types/pixel/Evaporation.d.ts.map +1 -0
- package/dist/types/pixel/NightShade.d.ts +38 -0
- package/dist/types/pixel/NightShade.d.ts.map +1 -0
- package/dist/types/pixel/PixelLayer.d.ts +85 -0
- package/dist/types/pixel/PixelLayer.d.ts.map +1 -0
- package/dist/types/pixel/SwayProp.d.ts +52 -0
- package/dist/types/pixel/SwayProp.d.ts.map +1 -0
- package/dist/types/pixel/index.d.ts +31 -0
- package/dist/types/pixel/index.d.ts.map +1 -0
- package/dist/types/pixel/lights.d.ts +34 -0
- package/dist/types/pixel/lights.d.ts.map +1 -0
- package/dist/types/pixel/nineSlice.d.ts +71 -0
- package/dist/types/pixel/nineSlice.d.ts.map +1 -0
- package/dist/types/pixel/paintLayer.d.ts +35 -0
- package/dist/types/pixel/paintLayer.d.ts.map +1 -0
- package/dist/types/pixel/palette.d.ts +58 -0
- package/dist/types/pixel/palette.d.ts.map +1 -0
- package/dist/types/pixel/pixel.d.ts +80 -0
- package/dist/types/pixel/pixel.d.ts.map +1 -0
- package/dist/types/pixel/pixelPaint.d.ts +43 -0
- package/dist/types/pixel/pixelPaint.d.ts.map +1 -0
- package/dist/types/pixel/pixelTone.d.ts +51 -0
- package/dist/types/pixel/pixelTone.d.ts.map +1 -0
- package/dist/types/pixel/propKit.d.ts +26 -0
- package/dist/types/pixel/propKit.d.ts.map +1 -0
- package/dist/types/pixel/ramp.d.ts +57 -0
- package/dist/types/pixel/ramp.d.ts.map +1 -0
- package/dist/types/pixel/selout.d.ts +3 -0
- package/dist/types/pixel/selout.d.ts.map +1 -0
- package/dist/types/pixel/spritePixels.d.ts +29 -0
- package/dist/types/pixel/spritePixels.d.ts.map +1 -0
- package/dist/types/pixel/swayRig.d.ts +72 -0
- package/dist/types/pixel/swayRig.d.ts.map +1 -0
- package/dist/types/pixel/vignetteMask.d.ts +16 -0
- package/dist/types/pixel/vignetteMask.d.ts.map +1 -0
- package/dist/types/pixel/weatherArt.d.ts +29 -0
- package/dist/types/pixel/weatherArt.d.ts.map +1 -0
- package/dist/types/platform/touch.d.ts +10 -0
- package/dist/types/platform/touch.d.ts.map +1 -0
- package/dist/types/postfx/BloomFilter.d.ts +33 -0
- package/dist/types/postfx/BloomFilter.d.ts.map +1 -0
- package/dist/types/postfx/ChromaticAberrationFilter.d.ts +11 -0
- package/dist/types/postfx/ChromaticAberrationFilter.d.ts.map +1 -0
- package/dist/types/postfx/ColorAdjustFilter.d.ts +32 -0
- package/dist/types/postfx/ColorAdjustFilter.d.ts.map +1 -0
- package/dist/types/postfx/CrtFilter.d.ts +16 -0
- package/dist/types/postfx/CrtFilter.d.ts.map +1 -0
- package/dist/types/postfx/PixelateFilter.d.ts +8 -0
- package/dist/types/postfx/PixelateFilter.d.ts.map +1 -0
- package/dist/types/postfx/PostFx.d.ts +92 -0
- package/dist/types/postfx/PostFx.d.ts.map +1 -0
- package/dist/types/postfx/ShockwaveFilter.d.ts +20 -0
- package/dist/types/postfx/ShockwaveFilter.d.ts.map +1 -0
- package/dist/types/postfx/VignetteFilter.d.ts +19 -0
- package/dist/types/postfx/VignetteFilter.d.ts.map +1 -0
- package/dist/types/postfx/fxAnimator.d.ts +32 -0
- package/dist/types/postfx/fxAnimator.d.ts.map +1 -0
- package/dist/types/postfx/fxShader.d.ts +49 -0
- package/dist/types/postfx/fxShader.d.ts.map +1 -0
- package/dist/types/postfx/index.d.ts +11 -0
- package/dist/types/postfx/index.d.ts.map +1 -0
- package/dist/types/react/ChoiceDialog.d.ts +8 -0
- package/dist/types/react/ChoiceDialog.d.ts.map +1 -0
- package/dist/types/react/ConfirmDialog.d.ts +9 -0
- package/dist/types/react/ConfirmDialog.d.ts.map +1 -0
- package/dist/types/react/Glyph.d.ts +54 -0
- package/dist/types/react/Glyph.d.ts.map +1 -0
- package/dist/types/react/Modal.d.ts +22 -0
- package/dist/types/react/Modal.d.ts.map +1 -0
- package/dist/types/react/Panel.d.ts +29 -0
- package/dist/types/react/Panel.d.ts.map +1 -0
- package/dist/types/react/PixelImage.d.ts +19 -0
- package/dist/types/react/PixelImage.d.ts.map +1 -0
- package/dist/types/react/Select.d.ts +27 -0
- package/dist/types/react/Select.d.ts.map +1 -0
- package/dist/types/react/Slider.d.ts +24 -0
- package/dist/types/react/Slider.d.ts.map +1 -0
- package/dist/types/react/SplitPane.d.ts +26 -0
- package/dist/types/react/SplitPane.d.ts.map +1 -0
- package/dist/types/react/TabStrip.d.ts +31 -0
- package/dist/types/react/TabStrip.d.ts.map +1 -0
- package/dist/types/react/TitleTips.d.ts +15 -0
- package/dist/types/react/TitleTips.d.ts.map +1 -0
- package/dist/types/react/Tooltip.d.ts +22 -0
- package/dist/types/react/Tooltip.d.ts.map +1 -0
- package/dist/types/react/UiProvider.d.ts +52 -0
- package/dist/types/react/UiProvider.d.ts.map +1 -0
- package/dist/types/react/baseCss.d.ts +27 -0
- package/dist/types/react/baseCss.d.ts.map +1 -0
- package/dist/types/react/choiceStore.d.ts +34 -0
- package/dist/types/react/choiceStore.d.ts.map +1 -0
- package/dist/types/react/classNames.d.ts +12 -0
- package/dist/types/react/classNames.d.ts.map +1 -0
- package/dist/types/react/confirmStore.d.ts +30 -0
- package/dist/types/react/confirmStore.d.ts.map +1 -0
- package/dist/types/react/index.d.ts +33 -0
- package/dist/types/react/index.d.ts.map +1 -0
- package/dist/types/react/labels.d.ts +24 -0
- package/dist/types/react/labels.d.ts.map +1 -0
- package/dist/types/react/placement.d.ts +59 -0
- package/dist/types/react/placement.d.ts.map +1 -0
- package/dist/types/react/useFillSheet.d.ts +9 -0
- package/dist/types/react/useFillSheet.d.ts.map +1 -0
- package/dist/types/react/useFitToViewport.d.ts +20 -0
- package/dist/types/react/useFitToViewport.d.ts.map +1 -0
- package/dist/types/react/usePicked.d.ts +9 -0
- package/dist/types/react/usePicked.d.ts.map +1 -0
- package/dist/types/react/useStore.d.ts +8 -0
- package/dist/types/react/useStore.d.ts.map +1 -0
- package/dist/types/react/useViewport.d.ts +4 -0
- package/dist/types/react/useViewport.d.ts.map +1 -0
- package/dist/types/rig/PosePlayer.d.ts +64 -0
- package/dist/types/rig/PosePlayer.d.ts.map +1 -0
- package/dist/types/rig/RigView.d.ts +68 -0
- package/dist/types/rig/RigView.d.ts.map +1 -0
- package/dist/types/rig/Skeleton.d.ts +14 -0
- package/dist/types/rig/Skeleton.d.ts.map +1 -0
- package/dist/types/rig/humanoid.d.ts +4 -0
- package/dist/types/rig/humanoid.d.ts.map +1 -0
- package/dist/types/rig/humanoidPoses.d.ts +117 -0
- package/dist/types/rig/humanoidPoses.d.ts.map +1 -0
- package/dist/types/rig/poseMath.d.ts +14 -0
- package/dist/types/rig/poseMath.d.ts.map +1 -0
- package/dist/types/rig/rigTypes.d.ts +82 -0
- package/dist/types/rig/rigTypes.d.ts.map +1 -0
- package/dist/types/save/Autosaver.d.ts +43 -0
- package/dist/types/save/Autosaver.d.ts.map +1 -0
- package/dist/types/save/MemoryBackend.d.ts +10 -0
- package/dist/types/save/MemoryBackend.d.ts.map +1 -0
- package/dist/types/save/SaveBackend.d.ts +14 -0
- package/dist/types/save/SaveBackend.d.ts.map +1 -0
- package/dist/types/save/SaveStore.d.ts +73 -0
- package/dist/types/save/SaveStore.d.ts.map +1 -0
- package/dist/types/save/WebStorageBackend.d.ts +14 -0
- package/dist/types/save/WebStorageBackend.d.ts.map +1 -0
- package/dist/types/save/checksum.d.ts +7 -0
- package/dist/types/save/checksum.d.ts.map +1 -0
- package/dist/types/save/migrateSave.d.ts +17 -0
- package/dist/types/save/migrateSave.d.ts.map +1 -0
- package/dist/types/settings.d.ts +25 -0
- package/dist/types/settings.d.ts.map +1 -0
- package/dist/types/tilemap/TilemapView.d.ts +42 -0
- package/dist/types/tilemap/TilemapView.d.ts.map +1 -0
- package/dist/types/tilemap/collision.d.ts +16 -0
- package/dist/types/tilemap/collision.d.ts.map +1 -0
- package/dist/types/tilemap/tiled.d.ts +104 -0
- package/dist/types/tilemap/tiled.d.ts.map +1 -0
- package/dist/types/transitions/CrossfadeTransition.d.ts +20 -0
- package/dist/types/transitions/CrossfadeTransition.d.ts.map +1 -0
- package/dist/types/transitions/DitherWipeTransition.d.ts +35 -0
- package/dist/types/transitions/DitherWipeTransition.d.ts.map +1 -0
- package/dist/types/transitions/FadeTransition.d.ts +20 -0
- package/dist/types/transitions/FadeTransition.d.ts.map +1 -0
- package/dist/types/transitions/Letterbox.d.ts +33 -0
- package/dist/types/transitions/Letterbox.d.ts.map +1 -0
- package/dist/types/transitions/Transition.d.ts +22 -0
- package/dist/types/transitions/Transition.d.ts.map +1 -0
- package/dist/types/transitions/ditherMask.d.ts +13 -0
- package/dist/types/transitions/ditherMask.d.ts.map +1 -0
- package/dist/types/transitions/transitionTo.d.ts +16 -0
- package/dist/types/transitions/transitionTo.d.ts.map +1 -0
- package/dist/types/transitions/tweenDone.d.ts +5 -0
- package/dist/types/transitions/tweenDone.d.ts.map +1 -0
- package/dist/types/ui/Bar.d.ts +41 -0
- package/dist/types/ui/Bar.d.ts.map +1 -0
- package/dist/types/ui/Button.d.ts +47 -0
- package/dist/types/ui/Button.d.ts.map +1 -0
- package/dist/types/ui/Dialog.d.ts +47 -0
- package/dist/types/ui/Dialog.d.ts.map +1 -0
- package/dist/types/ui/FocusManager.d.ts +53 -0
- package/dist/types/ui/FocusManager.d.ts.map +1 -0
- package/dist/types/ui/Label.d.ts +24 -0
- package/dist/types/ui/Label.d.ts.map +1 -0
- package/dist/types/ui/List.d.ts +23 -0
- package/dist/types/ui/List.d.ts.map +1 -0
- package/dist/types/ui/Panel.d.ts +38 -0
- package/dist/types/ui/Panel.d.ts.map +1 -0
- package/dist/types/ui/ScrollView.d.ts +56 -0
- package/dist/types/ui/ScrollView.d.ts.map +1 -0
- package/dist/types/ui/Slider.d.ts +47 -0
- package/dist/types/ui/Slider.d.ts.map +1 -0
- package/dist/types/ui/Stack.d.ts +16 -0
- package/dist/types/ui/Stack.d.ts.map +1 -0
- package/dist/types/ui/Toggle.d.ts +31 -0
- package/dist/types/ui/Toggle.d.ts.map +1 -0
- package/dist/types/ui/UiHost.d.ts +18 -0
- package/dist/types/ui/UiHost.d.ts.map +1 -0
- package/dist/types/ui/UiPointerGate.d.ts +17 -0
- package/dist/types/ui/UiPointerGate.d.ts.map +1 -0
- package/dist/types/ui/UiRoot.d.ts +73 -0
- package/dist/types/ui/UiRoot.d.ts.map +1 -0
- package/dist/types/ui/Widget.d.ts +56 -0
- package/dist/types/ui/Widget.d.ts.map +1 -0
- package/dist/types/ui/dom/DomOverlay.d.ts +52 -0
- package/dist/types/ui/dom/DomOverlay.d.ts.map +1 -0
- package/dist/types/ui/dom/DomWorldAnchors.d.ts +50 -0
- package/dist/types/ui/dom/DomWorldAnchors.d.ts.map +1 -0
- package/dist/types/ui/dom/InputShield.d.ts +20 -0
- package/dist/types/ui/dom/InputShield.d.ts.map +1 -0
- package/dist/types/ui/dom/createStore.d.ts +22 -0
- package/dist/types/ui/dom/createStore.d.ts.map +1 -0
- package/dist/types/ui/dom/shieldDecision.d.ts +34 -0
- package/dist/types/ui/dom/shieldDecision.d.ts.map +1 -0
- package/dist/types/ui/dom/worldToScreen.d.ts +24 -0
- package/dist/types/ui/dom/worldToScreen.d.ts.map +1 -0
- package/dist/types/ui/index.d.ts +38 -0
- package/dist/types/ui/index.d.ts.map +1 -0
- package/dist/types/ui/layout/anchor.d.ts +9 -0
- package/dist/types/ui/layout/anchor.d.ts.map +1 -0
- package/dist/types/ui/layout/barDrain.d.ts +25 -0
- package/dist/types/ui/layout/barDrain.d.ts.map +1 -0
- package/dist/types/ui/layout/fitToViewport.d.ts +32 -0
- package/dist/types/ui/layout/fitToViewport.d.ts.map +1 -0
- package/dist/types/ui/layout/focusNav.d.ts +13 -0
- package/dist/types/ui/layout/focusNav.d.ts.map +1 -0
- package/dist/types/ui/layout/geometry.d.ts +35 -0
- package/dist/types/ui/layout/geometry.d.ts.map +1 -0
- package/dist/types/ui/layout/listWidth.d.ts +13 -0
- package/dist/types/ui/layout/listWidth.d.ts.map +1 -0
- package/dist/types/ui/layout/placeTooltip.d.ts +23 -0
- package/dist/types/ui/layout/placeTooltip.d.ts.map +1 -0
- package/dist/types/ui/layout/scroll.d.ts +17 -0
- package/dist/types/ui/layout/scroll.d.ts.map +1 -0
- package/dist/types/ui/layout/slider.d.ts +7 -0
- package/dist/types/ui/layout/slider.d.ts.map +1 -0
- package/dist/types/ui/layout/stack.d.ts +26 -0
- package/dist/types/ui/layout/stack.d.ts.map +1 -0
- package/dist/types/ui/layout/wrapRow.d.ts +6 -0
- package/dist/types/ui/layout/wrapRow.d.ts.map +1 -0
- package/dist/ui/Bar.js +54 -0
- package/dist/ui/Bar.js.map +1 -0
- package/dist/ui/Button.js +58 -0
- package/dist/ui/Button.js.map +1 -0
- package/dist/ui/Dialog.js +56 -0
- package/dist/ui/Dialog.js.map +1 -0
- package/dist/ui/FocusManager.js +97 -0
- package/dist/ui/FocusManager.js.map +1 -0
- package/dist/ui/Label.js +36 -0
- package/dist/ui/Label.js.map +1 -0
- package/dist/ui/List.js +45 -0
- package/dist/ui/List.js.map +1 -0
- package/dist/ui/Panel.js +38 -0
- package/dist/ui/Panel.js.map +1 -0
- package/dist/ui/ScrollView.js +96 -0
- package/dist/ui/ScrollView.js.map +1 -0
- package/dist/ui/Slider.js +55 -0
- package/dist/ui/Slider.js.map +1 -0
- package/dist/ui/Stack.js +28 -0
- package/dist/ui/Stack.js.map +1 -0
- package/dist/ui/Toggle.js +37 -0
- package/dist/ui/Toggle.js.map +1 -0
- package/dist/ui/UiHost.js +9 -0
- package/dist/ui/UiHost.js.map +1 -0
- package/dist/ui/UiPointerGate.js +25 -0
- package/dist/ui/UiPointerGate.js.map +1 -0
- package/dist/ui/UiRoot.js +93 -0
- package/dist/ui/UiRoot.js.map +1 -0
- package/dist/ui/Widget.js +90 -0
- package/dist/ui/Widget.js.map +1 -0
- package/dist/ui/dom/DomOverlay.js +59 -0
- package/dist/ui/dom/DomOverlay.js.map +1 -0
- package/dist/ui/dom/DomWorldAnchors.js +59 -0
- package/dist/ui/dom/DomWorldAnchors.js.map +1 -0
- package/dist/ui/dom/InputShield.js +27 -0
- package/dist/ui/dom/InputShield.js.map +1 -0
- package/dist/ui/dom/createStore.js +42 -0
- package/dist/ui/dom/createStore.js.map +1 -0
- package/dist/ui/dom/shieldDecision.js +36 -0
- package/dist/ui/dom/shieldDecision.js.map +1 -0
- package/dist/ui/dom/worldToScreen.js +11 -0
- package/dist/ui/dom/worldToScreen.js.map +1 -0
- package/dist/ui/layout/anchor.js +20 -0
- package/dist/ui/layout/anchor.js.map +1 -0
- package/dist/ui/layout/barDrain.js +25 -0
- package/dist/ui/layout/barDrain.js.map +1 -0
- package/dist/ui/layout/fitToViewport.js +17 -0
- package/dist/ui/layout/fitToViewport.js.map +1 -0
- package/dist/ui/layout/focusNav.js +42 -0
- package/dist/ui/layout/focusNav.js.map +1 -0
- package/dist/ui/layout/geometry.js +21 -0
- package/dist/ui/layout/geometry.js.map +1 -0
- package/dist/ui/layout/listWidth.js +10 -0
- package/dist/ui/layout/listWidth.js.map +1 -0
- package/dist/ui/layout/placeTooltip.js +28 -0
- package/dist/ui/layout/placeTooltip.js.map +1 -0
- package/dist/ui/layout/scroll.js +24 -0
- package/dist/ui/layout/scroll.js.map +1 -0
- package/dist/ui/layout/slider.js +20 -0
- package/dist/ui/layout/slider.js.map +1 -0
- package/dist/ui/layout/stack.js +27 -0
- package/dist/ui/layout/stack.js.map +1 -0
- package/dist/ui/layout/wrapRow.js +13 -0
- package/dist/ui/layout/wrapRow.js.map +1 -0
- package/dist/ui.js +85 -0
- package/dist/ui.js.map +1 -0
- package/package.json +115 -4
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeps a press on a canvas widget from also counting as a press in the world.
|
|
3
|
+
*
|
|
4
|
+
* Pixi's event system listens on the canvas in the capture phase, so it hit-tests the widgets and runs their
|
|
5
|
+
* `pointerdown` handlers before `Pointer`'s own listener on the same canvas sees the event. A widget marks the native
|
|
6
|
+
* event (`consume`), and the gate, chained into `Pointer.ignorePress`, tells `Pointer` to leave that press out. A
|
|
7
|
+
* game's own `ignorePress` keeps working: the gate asks it too.
|
|
8
|
+
*/
|
|
9
|
+
export declare const UiPointerGate: {
|
|
10
|
+
/** Marks a native event (a federated event's `nativeEvent`) as taken by the UI. */
|
|
11
|
+
consume(e: object | null | undefined): void;
|
|
12
|
+
/** Whether the UI took this native event (a game's own canvas listener may ask too). */
|
|
13
|
+
wasConsumed(e: object | null | undefined): boolean;
|
|
14
|
+
/** Chains the gate into `Pointer.ignorePress`; counted, so two UI roots install it once. Returns the uninstall. */
|
|
15
|
+
install(): () => void;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=UiPointerGate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UiPointerGate.d.ts","sourceRoot":"","sources":["../../../src/ui/UiPointerGate.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;IACxB,mFAAmF;eACxE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAI3C,wFAAwF;mBACzE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAIlD,mHAAmH;eACxG,MAAM,IAAI;CAiBtB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import { Stage } from '../core/Stage.js';
|
|
3
|
+
import { FocusManager, type NavBindings, type NavInput } from './FocusManager.js';
|
|
4
|
+
import { type ScreenAnchor } from './layout/anchor.js';
|
|
5
|
+
import type { Insets, Size } from './layout/geometry.js';
|
|
6
|
+
import type { UiHost, UiTicking } from './UiHost.js';
|
|
7
|
+
/** A window that takes the screen while it is open (a `Dialog`): laid out on resize, asked on Cancel. */
|
|
8
|
+
export interface UiModal extends Container {
|
|
9
|
+
/** Lays itself out for the screen's size. */
|
|
10
|
+
layoutFor(viewport: Size): void;
|
|
11
|
+
/** Cancel pressed inside it; true when it used it (it closed). */
|
|
12
|
+
cancel(): boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface UiRootOptions {
|
|
15
|
+
/** Lay out on whole pixels (default: the camera's `roundPixels`, which `pixelPerfect: true` turns on). */
|
|
16
|
+
pixelPerfect?: boolean;
|
|
17
|
+
/** The action names navigation reads (default `ui_up`, `ui_down`, … `ui_accept`, `ui_cancel`). */
|
|
18
|
+
bindings?: Partial<NavBindings>;
|
|
19
|
+
/**
|
|
20
|
+
* The container the root is added to (default the stage's screen layer). Give a scene's `hud` and the UI lives and
|
|
21
|
+
* dies with the scene: the scene destroys it on exit, its ticker listener and resize hook with it. On the screen
|
|
22
|
+
* layer it outlives the scene that made it until `destroy` is called.
|
|
23
|
+
*/
|
|
24
|
+
parent?: Container;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The canvas UI's root, on the stage's screen layer above the world: it pins HUD pieces to screen corners and keeps
|
|
28
|
+
* them there on resize, owns keyboard/gamepad focus, ticks only the widgets that are moving, opens modals with a
|
|
29
|
+
* focus trap, and keeps presses on widgets from reaching the world (`UiPointerGate`).
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* const ui = new UiRoot(engine.stage, { parent: scene.hud }); // goes when the scene does
|
|
33
|
+
* ui.pin(healthBar, 'top-left', 8);
|
|
34
|
+
* // in a fixed step, between actions.poll() and endStep():
|
|
35
|
+
* if (!ui.handleInput(actions) && !ui.capturesInput) movePlayer();
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare class UiRoot extends Container implements UiHost {
|
|
39
|
+
private readonly stage;
|
|
40
|
+
readonly isUiHost = true;
|
|
41
|
+
readonly pixelPerfect: boolean;
|
|
42
|
+
readonly focus: FocusManager;
|
|
43
|
+
private readonly pins;
|
|
44
|
+
private readonly moving;
|
|
45
|
+
private readonly modals;
|
|
46
|
+
private readonly cleanup;
|
|
47
|
+
private readonly ticker;
|
|
48
|
+
private readonly onTick;
|
|
49
|
+
constructor(stage: Stage, options?: UiRootOptions);
|
|
50
|
+
/** The screen's size in screen pixels. */
|
|
51
|
+
get viewport(): Size;
|
|
52
|
+
/** A modal is open or a widget has focus: the game should leave its own actions alone this step. */
|
|
53
|
+
get capturesInput(): boolean;
|
|
54
|
+
/** Adds `child` and keeps it pinned to a screen anchor, `margin` in from the edges, through every resize. */
|
|
55
|
+
pin(child: Container, anchor: ScreenAnchor, margin?: number | Partial<Insets>): this;
|
|
56
|
+
unpin(child: Container): this;
|
|
57
|
+
/** Places every pinned piece and open modal again (after one changed size; resizes do it by themselves). */
|
|
58
|
+
layout(): void;
|
|
59
|
+
/** Opens a modal over everything: focus is trapped inside it until it closes. */
|
|
60
|
+
openModal(modal: UiModal): void;
|
|
61
|
+
closeModal(modal: UiModal): void;
|
|
62
|
+
/** Reads one step of navigation input (call between `actions.poll()` and `endStep()`); true when the UI used it. */
|
|
63
|
+
handleInput(input: NavInput): boolean;
|
|
64
|
+
invalidateFocus(): void;
|
|
65
|
+
animate(t: UiTicking): void;
|
|
66
|
+
/** Ticks what is moving; called by the ticker, or by a game driving the UI itself. */
|
|
67
|
+
update(dtMs: number): void;
|
|
68
|
+
destroy(): void;
|
|
69
|
+
private place;
|
|
70
|
+
/** A ticker listener that throws never asks for the next frame: the UI's faults are caught and reported once. */
|
|
71
|
+
private guardedUpdate;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=UiRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UiRoot.d.ts","sourceRoot":"","sources":["../../../src/ui/UiRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAe,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIlD,yGAAyG;AACzG,MAAM,WAAW,OAAQ,SAAQ,SAAS;IACxC,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IAChC,kEAAkE;IAClE,MAAM,IAAI,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,0GAA0G;IAC1G,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAQD;;;;;;;;;;;GAWG;AACH,qBAAa,MAAO,SAAQ,SAAU,YAAW,MAAM;IAYnD,OAAO,CAAC,QAAQ,CAAC,KAAK;IAXxB,QAAQ,CAAC,QAAQ,QAAQ;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;gBAGpD,KAAK,EAAE,KAAK,EAC7B,OAAO,GAAE,aAAkB;IAY7B,0CAA0C;IAC1C,IAAI,QAAQ,IAAI,IAAI,CAEnB;IAED,oGAAoG;IACpG,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,6GAA6G;IAC7G,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAK,GAAG,IAAI;IAUvF,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAM7B,4GAA4G;IAC5G,MAAM,IAAI,IAAI;IAUd,iFAAiF;IACjF,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAQ/B,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAQhC,oHAAoH;IACpH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAIrC,eAAe,IAAI,IAAI;IAIvB,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAI3B,sFAAsF;IACtF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKjB,OAAO,IAAI,IAAI;IAWxB,OAAO,CAAC,KAAK;IAKb,iHAAiH;IACjH,OAAO,CAAC,aAAa;CAStB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import type { NavDirection } from './layout/focusNav.js';
|
|
3
|
+
import { type Size } from './layout/geometry.js';
|
|
4
|
+
import { type UiHost } from './UiHost.js';
|
|
5
|
+
/**
|
|
6
|
+
* The base of every canvas widget: a Pixi container with a layout box (`boxWidth` × `boxHeight`, its own units, not
|
|
7
|
+
* its drawn bounds), an enabled and a focused state, and the hooks keyboard and gamepad navigation call.
|
|
8
|
+
*
|
|
9
|
+
* A widget is a Pixi `Container`, so Container's own members are taken names: in particular `label` (Pixi's debug
|
|
10
|
+
* name, a string) — a subclass field `label` holding a `Label` clashes with it; call it `caption`, `title`, … .
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class Widget extends Container {
|
|
13
|
+
/** Whether the focus manager may land on it (buttons, sliders, toggles). */
|
|
14
|
+
focusable: boolean;
|
|
15
|
+
protected boxW: number;
|
|
16
|
+
protected boxH: number;
|
|
17
|
+
private isEnabled;
|
|
18
|
+
private isFocused;
|
|
19
|
+
get boxWidth(): number;
|
|
20
|
+
get boxHeight(): number;
|
|
21
|
+
get enabled(): boolean;
|
|
22
|
+
set enabled(v: boolean);
|
|
23
|
+
get focused(): boolean;
|
|
24
|
+
/** Called by the focus manager. */
|
|
25
|
+
setFocused(v: boolean): void;
|
|
26
|
+
/** Resizes the layout box (whole pixels under a pixel-perfect root) and redraws. */
|
|
27
|
+
resize(width: number, height: number): this;
|
|
28
|
+
/** Moves it, on whole pixels under a pixel-perfect root. */
|
|
29
|
+
place(x: number, y: number): this;
|
|
30
|
+
/** Focusable now: enabled, shown, and every parent shown. */
|
|
31
|
+
canFocus(): boolean;
|
|
32
|
+
/** Accept pressed while focused (Enter, the pad's A). */
|
|
33
|
+
activate(): void;
|
|
34
|
+
/** A direction pressed while focused; true when the widget used it (a slider stepping) so focus stays. */
|
|
35
|
+
navigate(_dir: NavDirection): boolean;
|
|
36
|
+
/** The root it sits under, looked up when needed: a widget may be built before it is added. */
|
|
37
|
+
protected get host(): UiHost | null;
|
|
38
|
+
/**
|
|
39
|
+
* Hit-tested by Pixi, and every press on it is kept from the world. A widget whose drawing has gaps (a scroll
|
|
40
|
+
* view, an empty panel) also sets a `hitArea` over its box, so a press between its pieces is not the world's.
|
|
41
|
+
*/
|
|
42
|
+
protected makeInteractive(): void;
|
|
43
|
+
/**
|
|
44
|
+
* A child widget's box changed size by itself (a `Label` given a longer text). A widget that places a child by its
|
|
45
|
+
* size (a `Button` centring its content) lays it out again here; the default does nothing, so a `Stack` still waits
|
|
46
|
+
* for its `layout()` and a change does not ripple up through every container.
|
|
47
|
+
*/
|
|
48
|
+
protected childResized(_child: Widget): void;
|
|
49
|
+
/** Tells the parent widget this one's box changed size by itself. */
|
|
50
|
+
protected notifyResized(): void;
|
|
51
|
+
/** Draws the current size and state. */
|
|
52
|
+
protected abstract redraw(): void;
|
|
53
|
+
}
|
|
54
|
+
/** A child's layout size: a widget's box, anything else its drawn bounds. */
|
|
55
|
+
export declare function sizeOf(c: Container): Size;
|
|
56
|
+
//# sourceMappingURL=Widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../../../src/ui/Widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,SAAS,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAQjD;;;;;;GAMG;AACH,8BAAsB,MAAO,SAAQ,SAAS;IAC5C,4EAA4E;IAC5E,SAAS,UAAS;IAClB,SAAS,CAAC,IAAI,SAAK;IACnB,SAAS,CAAC,IAAI,SAAK;IACnB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,EAMrB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,mCAAmC;IACnC,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAM5B,oFAAoF;IACpF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ3C,4DAA4D;IAC5D,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAMjC,6DAA6D;IAC7D,QAAQ,IAAI,OAAO;IAMnB,yDAAyD;IACzD,QAAQ,IAAI,IAAI;IAEhB,0GAA0G;IAC1G,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAIrC,+FAA+F;IAC/F,SAAS,KAAK,IAAI,IAAI,MAAM,GAAG,IAAI,CAElC;IAED;;;OAGG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IAKjC;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAE5C,qEAAqE;IACrE,SAAS,CAAC,aAAa,IAAI,IAAI;IAK/B,wCAAwC;IACxC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI;CAClC;AAED,6EAA6E;AAC7E,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAIzC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export interface DomOverlayOptions {
|
|
2
|
+
/** Added to the root element (for the game's CSS). */
|
|
3
|
+
className?: string;
|
|
4
|
+
/** Stacking order over the canvas (default 1). */
|
|
5
|
+
zIndex?: number;
|
|
6
|
+
/**
|
|
7
|
+
* The canvas's size in screen pixels (`() => app.screen`): when CSS stretches the canvas past it (a small fixed
|
|
8
|
+
* canvas scaled up), `cssScale` is how much, and world placement follows it. Default: no stretch.
|
|
9
|
+
*/
|
|
10
|
+
logicalSize?: () => {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The element a DOM (or React) UI is mounted in, laid exactly over the canvas and resized with it. It sits beside the
|
|
17
|
+
* canvas in the same parent, so it shares the canvas's positioned ancestor and needs no change to the page's CSS.
|
|
18
|
+
*
|
|
19
|
+
* The root lets presses through (`pointer-events: none`) so the world stays playable between panels; give what the
|
|
20
|
+
* player presses `pointer-events: auto` (`DomOverlay.interactive`). `content` is drawn at `scale` (a whole multiple
|
|
21
|
+
* for pixel-art UI): laid out on a box `1 / scale` the overlay and scaled back up, so a window sized for 320 × 180
|
|
22
|
+
* fills the screen at ×4 with sharp edges.
|
|
23
|
+
*/
|
|
24
|
+
export declare class DomOverlay {
|
|
25
|
+
readonly canvas: HTMLCanvasElement;
|
|
26
|
+
private readonly options;
|
|
27
|
+
readonly root: HTMLDivElement;
|
|
28
|
+
/** Where the UI goes: scaled by `scale`. */
|
|
29
|
+
readonly content: HTMLDivElement;
|
|
30
|
+
private scaleNow;
|
|
31
|
+
private cssW;
|
|
32
|
+
private cssH;
|
|
33
|
+
private stretch;
|
|
34
|
+
private readonly observer;
|
|
35
|
+
private readonly onWindow;
|
|
36
|
+
constructor(canvas: HTMLCanvasElement, options?: DomOverlayOptions);
|
|
37
|
+
/** Lets presses on `el` reach it (the overlay's root and content let them through to the canvas). */
|
|
38
|
+
static interactive(el: HTMLElement): HTMLElement;
|
|
39
|
+
/** The overlay's size in CSS pixels (the canvas's box). */
|
|
40
|
+
get width(): number;
|
|
41
|
+
get height(): number;
|
|
42
|
+
/** CSS pixels per screen pixel of the canvas: 1 unless CSS stretches it. */
|
|
43
|
+
get cssScale(): number;
|
|
44
|
+
get scale(): number;
|
|
45
|
+
/** Draws `content` at `scale` (also published as the CSS variable `--ui-scale`). */
|
|
46
|
+
setScale(scale: number): void;
|
|
47
|
+
/** Lines the overlay up with the canvas again; resizes do it by themselves. */
|
|
48
|
+
sync(): void;
|
|
49
|
+
destroy(): void;
|
|
50
|
+
private applySize;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=DomOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DomOverlay.d.ts","sourceRoot":"","sources":["../../../../src/ui/dom/DomOverlay.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU;IAYnB,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;gBAGnC,MAAM,EAAE,iBAAiB,EACjB,OAAO,GAAE,iBAAsB;IAiBlD,qGAAqG;IACrG,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,WAAW;IAKhD,2DAA2D;IAC3D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,4EAA4E;IAC5E,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,oFAAoF;IACpF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,+EAA+E;IAC/E,IAAI,IAAI,IAAI;IAiBZ,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,SAAS;CAQlB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type Ticker } from 'pixi.js';
|
|
2
|
+
import type { DomOverlay } from './DomOverlay.js';
|
|
3
|
+
import { type LayerTransform } from './worldToScreen.js';
|
|
4
|
+
export interface WorldAnchorOptions {
|
|
5
|
+
/** Moved this far after projecting (CSS px): a name 20 px over the feet. */
|
|
6
|
+
offsetX?: number;
|
|
7
|
+
offsetY?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Which point of the element sits on the spot, as fractions of its size (default 0.5, 1: centred above it).
|
|
10
|
+
* Written as a CSS translate in percent, so the element is never measured.
|
|
11
|
+
*/
|
|
12
|
+
alignX?: number;
|
|
13
|
+
alignY?: number;
|
|
14
|
+
/** Kept shown this far past the screen's edge (default 64 px), so a wide label does not pop out early. */
|
|
15
|
+
margin?: number;
|
|
16
|
+
}
|
|
17
|
+
/** Anything with a world position read every frame: an entity's position object, a sprite. */
|
|
18
|
+
export interface WorldPoint {
|
|
19
|
+
readonly x: number;
|
|
20
|
+
readonly y: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* DOM elements that follow points in the world (names over heads, speech bubbles, markers): placed every frame
|
|
24
|
+
* through the world layer's own transform, on whole CSS pixels, and hidden off screen. A style is written only when
|
|
25
|
+
* the rounded position or visibility changed, so a still crowd costs no DOM writes.
|
|
26
|
+
*/
|
|
27
|
+
export declare class DomWorldAnchors {
|
|
28
|
+
private readonly overlay;
|
|
29
|
+
/** The layer the points are in: `engine.stage.world`. */
|
|
30
|
+
private readonly layer;
|
|
31
|
+
private readonly anchors;
|
|
32
|
+
private ticker;
|
|
33
|
+
private readonly onTick;
|
|
34
|
+
constructor(overlay: DomOverlay,
|
|
35
|
+
/** The layer the points are in: `engine.stage.world`. */
|
|
36
|
+
layer: LayerTransform);
|
|
37
|
+
/** Places `el` (put inside the overlay's content if it is not already there) on `target`. Returns the remover. */
|
|
38
|
+
add(el: HTMLElement, target: WorldPoint, options?: WorldAnchorOptions): () => void;
|
|
39
|
+
remove(el: HTMLElement): void;
|
|
40
|
+
/**
|
|
41
|
+
* Runs `update` on `ticker` after Pixi renders (`UTILITY` priority), so it reads the camera as this frame drew it,
|
|
42
|
+
* shake included. The returned function stops it.
|
|
43
|
+
*/
|
|
44
|
+
attach(ticker: Ticker): () => void;
|
|
45
|
+
detach(): void;
|
|
46
|
+
/** Places every element for this frame. */
|
|
47
|
+
update(): void;
|
|
48
|
+
destroy(): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=DomWorldAnchors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DomWorldAnchors.d.ts","sourceRoot":"","sources":["../../../../src/ui/dom/DomWorldAnchors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE/E,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0GAA0G;IAC1G,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,8FAA8F;AAC9F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD;;;;GAIG;AACH,qBAAa,eAAe;IAMxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK;IAPxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAG3B,OAAO,EAAE,UAAU;IACpC,yDAAyD;IACxC,KAAK,EAAE,cAAc;IAGxC,kHAAkH;IAClH,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,IAAI;IAsBtF,MAAM,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAK7B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI;IAOlC,MAAM,IAAI,IAAI;IAKd,2CAA2C;IAC3C,MAAM,IAAI,IAAI;IAqBd,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ShieldOptions } from './shieldDecision.js';
|
|
2
|
+
/**
|
|
3
|
+
* Keeps input meant for the DOM UI from reaching the engine. It listens on the overlay's root as events bubble out
|
|
4
|
+
* of it and stops the ones `shouldShield` names, so the element under them still gets them (a text field still
|
|
5
|
+
* types) but listeners on the window and document (`Keyboard`, a game's own) never hear them.
|
|
6
|
+
*
|
|
7
|
+
* Presses on the overlay never reach `Pointer` anyway, which counts presses only on the canvas; the shield covers
|
|
8
|
+
* keys, wheel and window-level listeners. Releases always pass, or a key held when a field took focus would stick.
|
|
9
|
+
*/
|
|
10
|
+
export declare class InputShield {
|
|
11
|
+
private readonly root;
|
|
12
|
+
private readonly options;
|
|
13
|
+
private readonly handler;
|
|
14
|
+
constructor(root: HTMLElement, options?: ShieldOptions);
|
|
15
|
+
/** Whether the player is typing in a field of the UI now (a game may also skip its hotkeys). */
|
|
16
|
+
get typing(): boolean;
|
|
17
|
+
destroy(): void;
|
|
18
|
+
private check;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=InputShield.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputShield.d.ts","sourceRoot":"","sources":["../../../../src/ui/dom/InputShield.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAK1F;;;;;;;GAOG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAGpC,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,aAAkB;IAK9C,gGAAgG;IAChG,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK;CAMd"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type StoreListener<T> = (state: T, previous: T) => void;
|
|
2
|
+
/**
|
|
3
|
+
* A tiny shared state store between the game and its UI, framework-free. Same shape as the engine's settings store
|
|
4
|
+
* and as zustand's vanilla stores (`getState`, `setState`, `subscribe`), so React reads it with
|
|
5
|
+
* `useSyncExternalStore(store.subscribe, store.getState)`.
|
|
6
|
+
*/
|
|
7
|
+
export interface Store<T extends object> {
|
|
8
|
+
getState(): T;
|
|
9
|
+
/**
|
|
10
|
+
* Merges a patch (or what a function of the state returns) into a new state object. A patch that changes nothing
|
|
11
|
+
* notifies nobody: a game may set the player's health every frame and the UI renders only when it moved.
|
|
12
|
+
*/
|
|
13
|
+
setState(patch: Partial<T> | ((state: T) => Partial<T>)): void;
|
|
14
|
+
/** Calls `listener` after every change; the returned function unsubscribes. */
|
|
15
|
+
subscribe(listener: StoreListener<T>): () => void;
|
|
16
|
+
/** Calls `listener` only when `select(state)` changes (by `equals`, default `Object.is`). */
|
|
17
|
+
select<S>(select: (state: T) => S, listener: (value: S, previous: S) => void, equals?: (a: S, b: S) => boolean): () => void;
|
|
18
|
+
/** Back to the state it was made with. */
|
|
19
|
+
reset(): void;
|
|
20
|
+
}
|
|
21
|
+
export declare function createStore<T extends object>(initial: T): Store<T>;
|
|
22
|
+
//# sourceMappingURL=createStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createStore.d.ts","sourceRoot":"","sources":["../../../../src/ui/dom/createStore.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC;AAE/D;;;;GAIG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM;IACrC,QAAQ,IAAI,CAAC,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/D,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAClD,6FAA6F;IAC7F,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM,IAAI,CAAC;IAC5H,0CAA0C;IAC1C,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CA6ClE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** The few fields of a DOM element the decision reads; real elements fit, and tests pass plain objects. */
|
|
2
|
+
export interface ElementLike {
|
|
3
|
+
readonly tagName?: string;
|
|
4
|
+
readonly type?: string;
|
|
5
|
+
readonly isContentEditable?: boolean;
|
|
6
|
+
readonly parentElement?: ElementLike | null;
|
|
7
|
+
}
|
|
8
|
+
/** Whether keys pressed on this element are typing (a text field, a text area, a select, editable content). */
|
|
9
|
+
export declare function isEditable(el: ElementLike | null | undefined): boolean;
|
|
10
|
+
/** Whether `el` is `root` or inside it. */
|
|
11
|
+
export declare function isInside(el: ElementLike | null | undefined, root: ElementLike): boolean;
|
|
12
|
+
export interface ShieldFacts {
|
|
13
|
+
/** The event's target is in the DOM UI overlay. */
|
|
14
|
+
insideUi: boolean;
|
|
15
|
+
/** The target takes typing (`isEditable`). */
|
|
16
|
+
editable: boolean;
|
|
17
|
+
/** `KeyboardEvent.code`, for key events. */
|
|
18
|
+
code?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ShieldOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Keys a focused, non-typing UI element (a button) keeps from the game: the ones that press it (default Enter,
|
|
23
|
+
* Space). Others still reach the game, so a button left focused after a click does not stop the hero walking.
|
|
24
|
+
*/
|
|
25
|
+
uiKeys?: readonly string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Whether an event on the DOM UI must be kept from the engine's input. Releases (`keyup`, `pointerup`,
|
|
29
|
+
* `pointercancel`) always go through, or a key or button held when the UI took over would stay down for good; moves
|
|
30
|
+
* go through so aiming follows the pointer over a panel. Presses, wheel and context menus on the UI stay in the UI,
|
|
31
|
+
* and so does every key typed into a field.
|
|
32
|
+
*/
|
|
33
|
+
export declare function shouldShield(type: string, facts: ShieldFacts, options?: ShieldOptions): boolean;
|
|
34
|
+
//# sourceMappingURL=shieldDecision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shieldDecision.d.ts","sourceRoot":"","sources":["../../../../src/ui/dom/shieldDecision.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7C;AAKD,+GAA+G;AAC/G,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAMtE;AAED,2CAA2C;AAC3C,wBAAgB,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAGvF;AAED,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAkBnG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** A layer's transform as drawn: `stage.world` (a Pixi container) fits it, with the camera and its shake applied. */
|
|
2
|
+
export interface LayerTransform {
|
|
3
|
+
readonly x: number;
|
|
4
|
+
readonly y: number;
|
|
5
|
+
readonly scale: {
|
|
6
|
+
readonly x: number;
|
|
7
|
+
readonly y: number;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Where a world point is on the overlay, in CSS pixels: through the world layer's own transform (so the camera's
|
|
12
|
+
* zoom, scroll and shake are all in it), times how much CSS stretches the canvas (`cssScale`, 1 normally). Writes
|
|
13
|
+
* into `out`: called for every placed element every frame.
|
|
14
|
+
*/
|
|
15
|
+
export declare function worldToScreen(layer: LayerTransform, wx: number, wy: number, out: {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
}, cssScale?: number): {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
};
|
|
22
|
+
/** Whether a point is on a `width` × `height` screen, or within `margin` of it (an element's own size past the point). */
|
|
23
|
+
export declare function onScreen(x: number, y: number, width: number, height: number, margin?: number): boolean;
|
|
24
|
+
//# sourceMappingURL=worldToScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worldToScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/dom/worldToScreen.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,SAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAIlJ;AAED,0HAA0H;AAC1H,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,OAAO,CAEjG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 1681 Engine's UI module (`1681-engine/ui`): canvas widgets drawn with Pixi on the stage's screen layer, a
|
|
3
|
+
* bridge for a UI written in the DOM or React over the canvas, and the pure layout maths both use. A game that
|
|
4
|
+
* draws no UI through the engine never ships it.
|
|
5
|
+
*/
|
|
6
|
+
export { insets, snapPx, snapRect, clamp, type Size, type Point, type Rect, type Insets } from './layout/geometry.js';
|
|
7
|
+
export { stackLayout, type StackOptions, type StackResult, type StackDirection, type StackAlign } from './layout/stack.js';
|
|
8
|
+
export { anchorPosition, type ScreenAnchor } from './layout/anchor.js';
|
|
9
|
+
export { fitToViewport, type FitOptions, type FitResult } from './layout/fitToViewport.js';
|
|
10
|
+
export { placeTooltip, type TooltipOptions, type TooltipPlacement, type TipSide } from './layout/placeTooltip.js';
|
|
11
|
+
export { wrapRow } from './layout/wrapRow.js';
|
|
12
|
+
export { listWidth, type ListWidthOptions } from './layout/listWidth.js';
|
|
13
|
+
export { maxScroll, clampScroll, scrollIntoView, stepFling, FLING_STOP } from './layout/scroll.js';
|
|
14
|
+
export { quantize, sliderFraction, sliderValueAt } from './layout/slider.js';
|
|
15
|
+
export { drainState, setDrainValue, stepDrain, type DrainState, type DrainOptions } from './layout/barDrain.js';
|
|
16
|
+
export { nextFocus, firstFocus, linearFocus, type NavDirection } from './layout/focusNav.js';
|
|
17
|
+
export { UiRoot, type UiRootOptions, type UiModal } from './UiRoot.js';
|
|
18
|
+
export { uiHostOf, type UiHost, type UiTicking } from './UiHost.js';
|
|
19
|
+
export { UiPointerGate } from './UiPointerGate.js';
|
|
20
|
+
export { FocusManager, DEFAULT_NAV, type NavBindings, type NavInput } from './FocusManager.js';
|
|
21
|
+
export { Widget, sizeOf } from './Widget.js';
|
|
22
|
+
export { Panel, type PanelSkin, type TextureSkin, type ColourSkin, type PanelOptions } from './Panel.js';
|
|
23
|
+
export { Label, type LabelText } from './Label.js';
|
|
24
|
+
export { Button, type ButtonOptions, type ButtonSkin, type ButtonState } from './Button.js';
|
|
25
|
+
export { Bar, type BarOptions } from './Bar.js';
|
|
26
|
+
export { Slider, type SliderOptions } from './Slider.js';
|
|
27
|
+
export { Toggle, type ToggleOptions } from './Toggle.js';
|
|
28
|
+
export { Stack } from './Stack.js';
|
|
29
|
+
export { ScrollView, type ScrollViewOptions } from './ScrollView.js';
|
|
30
|
+
export { List, type ListOptions } from './List.js';
|
|
31
|
+
export { Dialog, type DialogOptions } from './Dialog.js';
|
|
32
|
+
export { DomOverlay, type DomOverlayOptions } from './dom/DomOverlay.js';
|
|
33
|
+
export { DomWorldAnchors, type WorldAnchorOptions, type WorldPoint } from './dom/DomWorldAnchors.js';
|
|
34
|
+
export { worldToScreen, onScreen, type LayerTransform } from './dom/worldToScreen.js';
|
|
35
|
+
export { createStore, type Store, type StoreListener } from './dom/createStore.js';
|
|
36
|
+
export { InputShield } from './dom/InputShield.js';
|
|
37
|
+
export { shouldShield, isEditable, isInside, type ShieldFacts, type ShieldOptions, type ElementLike } from './dom/shieldDecision.js';
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxH,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG1F,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Insets, type Point, type Size } from './geometry.js';
|
|
2
|
+
/** A spot on the screen a HUD piece is pinned to; it stays there whatever the screen's size. */
|
|
3
|
+
export type ScreenAnchor = 'top-left' | 'top' | 'top-right' | 'left' | 'center' | 'right' | 'bottom-left' | 'bottom' | 'bottom-right';
|
|
4
|
+
/**
|
|
5
|
+
* Top-left of a box of `size` pinned to `anchor` of the viewport, `margin` in from the edges (a number, or per side
|
|
6
|
+
* for a phone's notch). Centred anchors ignore the margins of the sides they do not touch.
|
|
7
|
+
*/
|
|
8
|
+
export declare function anchorPosition(anchor: ScreenAnchor, size: Size, viewport: Size, margin?: number | Partial<Insets>, snap?: boolean): Point;
|
|
9
|
+
//# sourceMappingURL=anchor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/anchor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAEhF,gGAAgG;AAChG,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,cAAc,CAAC;AAetI;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAK,EAAE,IAAI,UAAQ,GAAG,KAAK,CAM1I"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A bar's two lengths: what it holds now (`value`) and the trail behind it (`trail`) that drains down to it after a
|
|
3
|
+
* short hold, so a hit shows how much it took. Fractions 0–1. Mutated in place: a health bar is set every frame.
|
|
4
|
+
*/
|
|
5
|
+
export interface DrainState {
|
|
6
|
+
value: number;
|
|
7
|
+
trail: number;
|
|
8
|
+
/** What is left of the hold before the trail starts to drain (ms). */
|
|
9
|
+
holdMs: number;
|
|
10
|
+
}
|
|
11
|
+
export interface DrainOptions {
|
|
12
|
+
/** How long the trail holds after a loss before draining (default 400 ms). */
|
|
13
|
+
delayMs?: number;
|
|
14
|
+
/** How fast it drains, in whole bars a second (default 0.6). */
|
|
15
|
+
rate?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function drainState(value?: number): DrainState;
|
|
18
|
+
/**
|
|
19
|
+
* Sets the bar. A loss restarts the hold, so blows in quick succession show one trail for all of them; a gain fills
|
|
20
|
+
* at once and pulls the trail up with it (a heal has nothing to show behind it).
|
|
21
|
+
*/
|
|
22
|
+
export declare function setDrainValue(state: DrainState, value: number, options?: DrainOptions): void;
|
|
23
|
+
/** Advances the trail by a frame `dtMs` long. */
|
|
24
|
+
export declare function stepDrain(state: DrainState, dtMs: number, options?: DrainOptions): void;
|
|
25
|
+
//# sourceMappingURL=barDrain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barDrain.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/barDrain.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,UAAU,CAAC,KAAK,SAAI,GAAG,UAAU,CAEhD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,IAAI,CAKhG;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,IAAI,CAa3F"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type Rect, type Size } from './geometry.js';
|
|
2
|
+
export interface FitOptions {
|
|
3
|
+
/** Kept clear between the window and the screen's edges (default 8). */
|
|
4
|
+
margin?: number;
|
|
5
|
+
/**
|
|
6
|
+
* The scale the window is meant to be drawn at (default 1): a player's "window size" setting, or a whole multiple
|
|
7
|
+
* for pixel art. The window is laid out on a box `1 / scale` the screen and drawn back at `scale`.
|
|
8
|
+
*/
|
|
9
|
+
scale?: number;
|
|
10
|
+
/**
|
|
11
|
+
* The smallest scale it may shrink to before it starts scrolling instead (default: `scale`, never shrinks). A
|
|
12
|
+
* pixel-art game keeps it at its whole scale: a fractional one smears every texel.
|
|
13
|
+
*/
|
|
14
|
+
minScale?: number;
|
|
15
|
+
/** Centre it on the screen instead of keeping `rect.x/y` (default false). */
|
|
16
|
+
centre?: boolean;
|
|
17
|
+
snap?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface FitResult extends Rect {
|
|
20
|
+
/** The scale to draw the window at; `x`, `y` are screen pixels, `width`, `height` the window's own units. */
|
|
21
|
+
scale: number;
|
|
22
|
+
/** The window was cut shorter (narrower) than it wanted: its body must scroll. */
|
|
23
|
+
scrollY: boolean;
|
|
24
|
+
scrollX: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Fits a window into the screen so it never overflows it: shrunk down to `minScale` if that is allowed, then cut to
|
|
28
|
+
* what is left (the caller scrolls its body), and moved back inside the edges. `rect` is where and how big the
|
|
29
|
+
* window wants to be, in its own units; `x`, `y` are screen pixels.
|
|
30
|
+
*/
|
|
31
|
+
export declare function fitToViewport(rect: Rect | Size, viewport: Size, options?: FitOptions): FitResult;
|
|
32
|
+
//# sourceMappingURL=fitToViewport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fitToViewport.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/fitToViewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI;IACrC,6GAA6G;IAC7G,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAE,UAAe,GAAG,SAAS,CA2BpG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Rect } from './geometry.js';
|
|
2
|
+
export type NavDirection = 'up' | 'down' | 'left' | 'right';
|
|
3
|
+
/** The item a fresh focus lands on: the top-most, then left-most. */
|
|
4
|
+
export declare function firstFocus(rects: readonly Rect[]): number;
|
|
5
|
+
/**
|
|
6
|
+
* Spatial navigation (a gamepad's d-pad, the arrow keys): from `current`, the nearest item whose centre lies in
|
|
7
|
+
* `dir`, an item straight ahead preferred over a nearer one off to the side. With `wrap`, going past the last item
|
|
8
|
+
* comes back in from the far side on the same line. Returns `current` when nothing lies that way.
|
|
9
|
+
*/
|
|
10
|
+
export declare function nextFocus(rects: readonly Rect[], current: number, dir: NavDirection, wrap?: boolean): number;
|
|
11
|
+
/** Tab order: the next (`step` 1) or previous (−1) of `count` items, wrapping round. */
|
|
12
|
+
export declare function linearFocus(count: number, current: number, step: 1 | -1): number;
|
|
13
|
+
//# sourceMappingURL=focusNav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focusNav.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/focusNav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAa5D,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM,CAQzD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,UAAQ,GAAG,MAAM,CAkC1G;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAIhF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shapes every UI layout function speaks: plain objects, no Pixi and no DOM, so the same maths places a canvas
|
|
3
|
+
* widget, a DOM panel or a React component.
|
|
4
|
+
*/
|
|
5
|
+
export interface Size {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
}
|
|
9
|
+
export interface Point {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
}
|
|
13
|
+
export interface Rect extends Point, Size {
|
|
14
|
+
}
|
|
15
|
+
/** Space kept clear on each side (padding, margins, a phone's safe area). */
|
|
16
|
+
export interface Insets {
|
|
17
|
+
top: number;
|
|
18
|
+
right: number;
|
|
19
|
+
bottom: number;
|
|
20
|
+
left: number;
|
|
21
|
+
}
|
|
22
|
+
/** `8` or `{ top: 8, left: 4 }` → all four sides; a missing side is 0. */
|
|
23
|
+
export declare function insets(v: number | Partial<Insets> | undefined): Insets;
|
|
24
|
+
/**
|
|
25
|
+
* Rounds to a whole pixel when `on`. Pixel art laid out at x.5 lands each texel across two screen pixels and reads
|
|
26
|
+
* blurred or a pixel wider on one side, so a pixel-perfect game snaps every UI position and size.
|
|
27
|
+
*/
|
|
28
|
+
export declare function snapPx(v: number, on?: boolean): number;
|
|
29
|
+
/**
|
|
30
|
+
* A rect with its edges (not its size) rounded: two neighbours that touch before snapping still touch after, where
|
|
31
|
+
* rounding x and width apart could open or overlap a pixel between them.
|
|
32
|
+
*/
|
|
33
|
+
export declare function snapRect(r: Rect, on?: boolean): Rect;
|
|
34
|
+
export declare function clamp(v: number, min: number, max: number): number;
|
|
35
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/geometry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,IAAK,SAAQ,KAAK,EAAE,IAAI;CAAG;AAE5C,6EAA6E;AAC7E,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,0EAA0E;AAC1E,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAItE;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,UAAO,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,UAAO,GAAG,IAAI,CAKjD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ListWidthOptions {
|
|
2
|
+
/** Added to the longest label: the row's padding, a check mark, a scroll bar (default 0). */
|
|
3
|
+
padding?: number;
|
|
4
|
+
min?: number;
|
|
5
|
+
max?: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* How wide a drop-down list (or a menu) must be so its longest label fits: measured, not guessed, so no label is
|
|
9
|
+
* clipped. `measure` is the caller's (a canvas `measureText`, a bitmap font's advance sum). Rounded up to a whole
|
|
10
|
+
* pixel so the measurement never loses the last half pixel of a letter.
|
|
11
|
+
*/
|
|
12
|
+
export declare function listWidth(labels: readonly string[], measure: (label: string) => number, options?: ListWidthOptions): number;
|
|
13
|
+
//# sourceMappingURL=listWidth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listWidth.d.ts","sourceRoot":"","sources":["../../../../src/ui/layout/listWidth.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAK/H"}
|