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,125 @@
|
|
|
1
|
+
import { Container as f, Sprite as w, Graphics as F } from "pixi.js";
|
|
2
|
+
import { Skeleton as k } from "./Skeleton.js";
|
|
3
|
+
const B = ["upperArmB", "forearmB", "thighB", "shinB", "torso", "thighF", "shinF", "head", "upperArmF", "forearmF"], g = {
|
|
4
|
+
upperArmB: 6983888,
|
|
5
|
+
forearmB: 1578e4,
|
|
6
|
+
thighB: 3813448,
|
|
7
|
+
shinB: 3813448,
|
|
8
|
+
torso: 4878256,
|
|
9
|
+
thighF: 3813448,
|
|
10
|
+
shinF: 3813448,
|
|
11
|
+
head: 1578e4,
|
|
12
|
+
upperArmF: 6983888,
|
|
13
|
+
forearmF: 1578e4
|
|
14
|
+
}, b = /* @__PURE__ */ new Set(["upperArmB", "forearmB", "thighB", "shinB"]), R = {
|
|
15
|
+
upperArmB: ["shoulderB", "elbowB"],
|
|
16
|
+
forearmB: ["elbowB", "wristB"],
|
|
17
|
+
thighB: ["hipB", "kneeB"],
|
|
18
|
+
shinB: ["kneeB", "ankleB"],
|
|
19
|
+
thighF: ["hipF", "kneeF"],
|
|
20
|
+
shinF: ["kneeF", "ankleF"],
|
|
21
|
+
upperArmF: ["shoulderF", "elbowF"],
|
|
22
|
+
forearmF: ["elbowF", "wristF"]
|
|
23
|
+
};
|
|
24
|
+
function A(d, t) {
|
|
25
|
+
const s = Math.round((d >> 16 & 255) * t), n = Math.round((d >> 8 & 255) * t), h = Math.round((d & 255) * t);
|
|
26
|
+
return s << 16 | n << 8 | h;
|
|
27
|
+
}
|
|
28
|
+
class S extends f {
|
|
29
|
+
constructor(t, s = {}, n, h = {}) {
|
|
30
|
+
super(), this.def = t, this.skin = s, this.skeleton = new k(t), this.scaleGrid = h.scale ?? 1, this.headRadius = h.headRadius ?? 5, this.headRise = h.headRise ?? 5.5, this.bulky = h.bulky === !0;
|
|
31
|
+
const r = new f();
|
|
32
|
+
r.position.set(-t.width / 2, -t.height), this.addChild(r);
|
|
33
|
+
for (const i of B) {
|
|
34
|
+
const o = new f();
|
|
35
|
+
this.layers.set(i, o), r.addChild(o);
|
|
36
|
+
const l = s[i];
|
|
37
|
+
if (l?.texture && n) {
|
|
38
|
+
const e = new w(n.get(l.texture, l.frame));
|
|
39
|
+
e.anchor.set(l.anchorX ?? 0.5, l.anchorY ?? 0), e.scale.set(1 / this.scaleGrid), this.sprites.set(i, e), o.addChild(e);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
this.scale.set(this.scaleGrid);
|
|
43
|
+
}
|
|
44
|
+
def;
|
|
45
|
+
skin;
|
|
46
|
+
skeleton;
|
|
47
|
+
sprites = /* @__PURE__ */ new Map();
|
|
48
|
+
layers = /* @__PURE__ */ new Map();
|
|
49
|
+
joints = null;
|
|
50
|
+
curl;
|
|
51
|
+
scaleGrid;
|
|
52
|
+
headRadius;
|
|
53
|
+
headRise;
|
|
54
|
+
bulky;
|
|
55
|
+
/** 1 faces right, -1 faces left. */
|
|
56
|
+
set facing(t) {
|
|
57
|
+
this.scale.x = this.scaleGrid * t;
|
|
58
|
+
}
|
|
59
|
+
get facing() {
|
|
60
|
+
return this.scale.x < 0 ? -1 : 1;
|
|
61
|
+
}
|
|
62
|
+
/** The joints of the last pose, in grid px of the rig's frame (for attaching a held item, an effect). */
|
|
63
|
+
get lastJoints() {
|
|
64
|
+
return this.joints;
|
|
65
|
+
}
|
|
66
|
+
/** Where a joint of the last pose is in this view's parent, in world px. */
|
|
67
|
+
jointInParent(t) {
|
|
68
|
+
if (!this.joints) return null;
|
|
69
|
+
const s = this.joints[t];
|
|
70
|
+
return { x: this.x + (s.x - this.def.width / 2) * this.scale.x, y: this.y + (s.y - this.def.height) * this.scale.y };
|
|
71
|
+
}
|
|
72
|
+
setPose(t) {
|
|
73
|
+
const s = this.skeleton.solve(t, this.bulky);
|
|
74
|
+
this.joints = s, this.curl = t.curl;
|
|
75
|
+
for (const n of B) this.place(n, s);
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
destroy(t) {
|
|
79
|
+
super.destroy(t ?? { children: !0 });
|
|
80
|
+
}
|
|
81
|
+
place(t, s) {
|
|
82
|
+
const n = this.layers.get(t), h = this.skin[t] ?? {}, r = this.sprites.get(t), [i, o] = this.ends(t, s), l = Math.atan2(o.y - i.y, o.x - i.x);
|
|
83
|
+
if (r) {
|
|
84
|
+
r.position.set(i.x, i.y), r.rotation = l - Math.PI / 2, h.stretch && r.texture.height > 0 && (r.scale.y = Math.hypot(o.x - i.x, o.y - i.y) / r.texture.height);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
let e = n.children[0];
|
|
88
|
+
e || (e = new F(), n.addChild(e)), e.clear();
|
|
89
|
+
const y = h.color ?? g[t], u = b.has(t) ? A(y, t.endsWith("ArmB") || t === "forearmB" ? this.def.backArmShade : this.def.backShade) : y, p = h.outline === void 0 ? 1709092 : h.outline, a = p === null ? null : { color: p, width: 0.6 };
|
|
90
|
+
if (t === "head") {
|
|
91
|
+
const c = h.width !== void 0 ? h.width / 2 : this.headRadius;
|
|
92
|
+
e.circle(i.x, i.y, c).fill(u), a && e.stroke(a);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (t === "torso") {
|
|
96
|
+
const c = h.width ?? Math.abs(this.def.shoulderF[0] - this.def.shoulderB[0]) + 1;
|
|
97
|
+
if (this.curl)
|
|
98
|
+
e.circle(this.curl[0], this.curl[1], c / 2 + 1).fill(u);
|
|
99
|
+
else {
|
|
100
|
+
const m = Math.hypot(o.x - i.x, o.y - i.y);
|
|
101
|
+
e.roundRect(-c / 2, -0.5, c, m + 1, Math.min(2, c / 3)).fill(u), e.position.set(i.x, i.y), e.rotation = l - Math.PI / 2, a && e.stroke(a);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
e.position.set(0, 0), e.rotation = 0, a && e.stroke(a);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const x = h.width ?? this.def.limbWidth;
|
|
108
|
+
e.position.set(0, 0), e.rotation = 0, a && e.moveTo(i.x, i.y).lineTo(o.x, o.y).stroke({ color: a.color, width: x + a.width * 2, cap: "round" }), e.moveTo(i.x, i.y).lineTo(o.x, o.y).stroke({ color: u, width: x, cap: "round" });
|
|
109
|
+
}
|
|
110
|
+
/** The two points a part spans: a limb's joints, the torso from chest to hips, the head's centre (twice). */
|
|
111
|
+
ends(t, s) {
|
|
112
|
+
if (t === "head") {
|
|
113
|
+
const r = { x: s.head.x, y: s.head.y - this.headRise };
|
|
114
|
+
return [r, { x: r.x, y: r.y + 1 }];
|
|
115
|
+
}
|
|
116
|
+
if (t === "torso") return [s.chest, { x: (s.hipF.x + s.hipB.x) / 2, y: (s.hipF.y + s.hipB.y) / 2 }];
|
|
117
|
+
const [n, h] = R[t];
|
|
118
|
+
return [s[n], s[h]];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export {
|
|
122
|
+
B as RIG_PARTS,
|
|
123
|
+
S as RigView
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=RigView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RigView.js","sources":["../../src/rig/RigView.ts"],"sourcesContent":["import { Container, Graphics, Sprite } from 'pixi.js';\nimport type { TextureRegistry } from '../core/TextureRegistry';\nimport { Skeleton } from './Skeleton';\nimport type { Joints, Point, RigDef, RigPose } from './rigTypes';\n\n/** The parts a humanoid rig is drawn with, back to front in this order. */\nexport const RIG_PARTS = ['upperArmB', 'forearmB', 'thighB', 'shinB', 'torso', 'thighF', 'shinF', 'head', 'upperArmF', 'forearmF'] as const;\nexport type RigPart = (typeof RIG_PARTS)[number];\n\n/**\n * How one part looks. A textured part is an image drawn with its top-centre on the bone's root joint and turned to\n * follow the bone (cut-out animation, any art style); a vector part is a capsule (limbs), a rounded box (torso) or a\n * circle (head) in `color`.\n */\nexport interface PartSkin {\n /** Texture key (and frame) in the stage's registry; leave out for a vector part. */\n texture?: string;\n frame?: string | number;\n /** Stretch the image along the bone to the next joint instead of drawing it at its own size. */\n stretch?: boolean;\n /** Where on the image the root joint sits, as a share of its size (default 0.5, 0). */\n anchorX?: number;\n anchorY?: number;\n /** Vector fill (default by part). */\n color?: number;\n /** Vector thickness in grid px (default the rig's `limbWidth`; the torso's width; the head's diameter). */\n width?: number;\n /** Vector outline colour, or null for none (default a dark outline). */\n outline?: number | null;\n}\n\nexport type RigSkin = Partial<Record<RigPart, PartSkin>>;\n\nexport interface RigViewOptions {\n /** World px per grid px (default 1). */\n scale?: number;\n /** Head radius in grid px (default 5) and how far above the chest point its centre sits (default 5.5). */\n headRadius?: number;\n headRise?: number;\n /** A broader build: shoulders set wider. */\n bulky?: boolean;\n}\n\nconst DEFAULT_COLORS: Record<RigPart, number> = {\n upperArmB: 0x6a90d0,\n forearmB: 0xf0c8a0,\n thighB: 0x3a3048,\n shinB: 0x3a3048,\n torso: 0x4a6fb0,\n thighF: 0x3a3048,\n shinF: 0x3a3048,\n head: 0xf0c8a0,\n upperArmF: 0x6a90d0,\n forearmF: 0xf0c8a0,\n};\n\nconst BACK = new Set<RigPart>(['upperArmB', 'forearmB', 'thighB', 'shinB']);\n\n/** Which joints each limb part runs between. */\nconst BONES: Record<Exclude<RigPart, 'torso' | 'head'>, [keyof Joints, keyof Joints]> = {\n upperArmB: ['shoulderB', 'elbowB'],\n forearmB: ['elbowB', 'wristB'],\n thighB: ['hipB', 'kneeB'],\n shinB: ['kneeB', 'ankleB'],\n thighF: ['hipF', 'kneeF'],\n shinF: ['kneeF', 'ankleF'],\n upperArmF: ['shoulderF', 'elbowF'],\n forearmF: ['elbowF', 'wristF'],\n};\n\nfunction shadeOf(color: number, k: number): number {\n const r = Math.round(((color >> 16) & 255) * k);\n const g = Math.round(((color >> 8) & 255) * k);\n const b = Math.round((color & 255) * k);\n return (r << 16) | (g << 8) | b;\n}\n\n/**\n * A character drawn from a rig pose: give it a pose each frame (`setPose`, from a `PosePlayer`) and it places every\n * part. The container's origin is the character's feet (bottom centre of the rig's frame); `facing` mirrors it.\n */\nexport class RigView extends Container {\n private readonly skeleton: Skeleton;\n private readonly sprites = new Map<RigPart, Sprite>();\n private readonly layers = new Map<RigPart, Container>();\n private joints: Joints | null = null;\n private curl: [number, number] | undefined;\n private readonly scaleGrid: number;\n private readonly headRadius: number;\n private readonly headRise: number;\n private readonly bulky: boolean;\n\n constructor(\n private readonly def: RigDef,\n private readonly skin: RigSkin = {},\n textures?: TextureRegistry,\n options: RigViewOptions = {},\n ) {\n super();\n this.skeleton = new Skeleton(def);\n this.scaleGrid = options.scale ?? 1;\n this.headRadius = options.headRadius ?? 5;\n this.headRise = options.headRise ?? 5.5;\n this.bulky = options.bulky === true;\n // one container per part keeps the back-to-front order whatever mixes sprites and vectors\n const body = new Container();\n body.position.set(-def.width / 2, -def.height);\n this.addChild(body);\n for (const part of RIG_PARTS) {\n const layer = new Container();\n this.layers.set(part, layer);\n body.addChild(layer);\n const s = skin[part];\n if (s?.texture && textures) {\n const sprite = new Sprite(textures.get(s.texture, s.frame));\n sprite.anchor.set(s.anchorX ?? 0.5, s.anchorY ?? 0);\n // images are drawn at the world's scale, while the rig works in grid px\n sprite.scale.set(1 / this.scaleGrid);\n this.sprites.set(part, sprite);\n layer.addChild(sprite);\n }\n }\n // vector parts are drawn into a graphics in their own layer on each pose\n this.scale.set(this.scaleGrid);\n }\n\n /** 1 faces right, -1 faces left. */\n set facing(dir: 1 | -1) {\n this.scale.x = this.scaleGrid * dir;\n }\n\n get facing(): 1 | -1 {\n return this.scale.x < 0 ? -1 : 1;\n }\n\n /** The joints of the last pose, in grid px of the rig's frame (for attaching a held item, an effect). */\n get lastJoints(): Joints | null {\n return this.joints;\n }\n\n /** Where a joint of the last pose is in this view's parent, in world px. */\n jointInParent(name: keyof Omit<Joints, 'forearm'>): Point | null {\n if (!this.joints) return null;\n const j = this.joints[name];\n return { x: this.x + (j.x - this.def.width / 2) * this.scale.x, y: this.y + (j.y - this.def.height) * this.scale.y };\n }\n\n setPose(pose: RigPose): this {\n const j = this.skeleton.solve(pose, this.bulky);\n this.joints = j;\n this.curl = pose.curl;\n for (const part of RIG_PARTS) this.place(part, j);\n return this;\n }\n\n override destroy(options?: Parameters<Container['destroy']>[0]): void {\n super.destroy(options ?? { children: true });\n }\n\n private place(part: RigPart, j: Joints): void {\n const layer = this.layers.get(part)!;\n const skin = this.skin[part] ?? {};\n const sprite = this.sprites.get(part);\n const [a, b] = this.ends(part, j);\n const angle = Math.atan2(b.y - a.y, b.x - a.x);\n if (sprite) {\n sprite.position.set(a.x, a.y);\n sprite.rotation = angle - Math.PI / 2;\n if (skin.stretch && sprite.texture.height > 0) sprite.scale.y = Math.hypot(b.x - a.x, b.y - a.y) / sprite.texture.height;\n return;\n }\n let g = layer.children[0] as Graphics | undefined;\n if (!g) {\n g = new Graphics();\n layer.addChild(g);\n }\n g.clear();\n const base = skin.color ?? DEFAULT_COLORS[part];\n const color = BACK.has(part) ? shadeOf(base, part.endsWith('ArmB') || part === 'forearmB' ? this.def.backArmShade : this.def.backShade) : base;\n const outline = skin.outline === undefined ? 0x1a1424 : skin.outline;\n const stroke = outline === null ? null : { color: outline, width: 0.6 };\n if (part === 'head') {\n const r = skin.width !== undefined ? skin.width / 2 : this.headRadius;\n g.circle(a.x, a.y, r).fill(color);\n if (stroke) g.stroke(stroke);\n return;\n }\n if (part === 'torso') {\n const w = skin.width ?? Math.abs(this.def.shoulderF[0] - this.def.shoulderB[0]) + 1;\n if (this.curl) {\n g.circle(this.curl[0], this.curl[1], w / 2 + 1).fill(color);\n } else {\n const len = Math.hypot(b.x - a.x, b.y - a.y);\n g.roundRect(-w / 2, -0.5, w, len + 1, Math.min(2, w / 3)).fill(color);\n g.position.set(a.x, a.y);\n g.rotation = angle - Math.PI / 2;\n if (stroke) g.stroke(stroke);\n return;\n }\n g.position.set(0, 0);\n g.rotation = 0;\n if (stroke) g.stroke(stroke);\n return;\n }\n const w = skin.width ?? this.def.limbWidth;\n g.position.set(0, 0);\n g.rotation = 0;\n // the outline is a wider line in its colour drawn first, the limb over it\n if (stroke) g.moveTo(a.x, a.y).lineTo(b.x, b.y).stroke({ color: stroke.color, width: w + stroke.width * 2, cap: 'round' });\n g.moveTo(a.x, a.y).lineTo(b.x, b.y).stroke({ color, width: w, cap: 'round' });\n }\n\n /** The two points a part spans: a limb's joints, the torso from chest to hips, the head's centre (twice). */\n private ends(part: RigPart, j: Joints): [Point, Point] {\n if (part === 'head') {\n const c = { x: j.head.x, y: j.head.y - this.headRise };\n return [c, { x: c.x, y: c.y + 1 }];\n }\n if (part === 'torso') return [j.chest, { x: (j.hipF.x + j.hipB.x) / 2, y: (j.hipF.y + j.hipB.y) / 2 }];\n const [from, to] = BONES[part];\n return [j[from] as Point, j[to] as Point];\n }\n}\n"],"names":["RIG_PARTS","DEFAULT_COLORS","BACK","BONES","shadeOf","color","k","r","g","b","RigView","Container","def","skin","textures","options","Skeleton","body","part","layer","s","sprite","Sprite","dir","name","j","pose","a","angle","Graphics","base","outline","stroke","w","len","c","from","to"],"mappings":";;AAMO,MAAMA,IAAY,CAAC,aAAa,YAAY,UAAU,SAAS,SAAS,UAAU,SAAS,QAAQ,aAAa,UAAU,GAqC3HC,IAA0C;AAAA,EAC9C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AACZ,GAEMC,wBAAW,IAAa,CAAC,aAAa,YAAY,UAAU,OAAO,CAAC,GAGpEC,IAAkF;AAAA,EACtF,WAAW,CAAC,aAAa,QAAQ;AAAA,EACjC,UAAU,CAAC,UAAU,QAAQ;AAAA,EAC7B,QAAQ,CAAC,QAAQ,OAAO;AAAA,EACxB,OAAO,CAAC,SAAS,QAAQ;AAAA,EACzB,QAAQ,CAAC,QAAQ,OAAO;AAAA,EACxB,OAAO,CAAC,SAAS,QAAQ;AAAA,EACzB,WAAW,CAAC,aAAa,QAAQ;AAAA,EACjC,UAAU,CAAC,UAAU,QAAQ;AAC/B;AAEA,SAASC,EAAQC,GAAeC,GAAmB;AACjD,QAAMC,IAAI,KAAK,OAAQF,KAAS,KAAM,OAAOC,CAAC,GACxCE,IAAI,KAAK,OAAQH,KAAS,IAAK,OAAOC,CAAC,GACvCG,IAAI,KAAK,OAAOJ,IAAQ,OAAOC,CAAC;AACtC,SAAQC,KAAK,KAAOC,KAAK,IAAKC;AAChC;AAMO,MAAMC,UAAgBC,EAAU;AAAA,EAWrC,YACmBC,GACAC,IAAgB,CAAA,GACjCC,GACAC,IAA0B,IAC1B;AACA,UAAA,GALiB,KAAA,MAAAH,GACA,KAAA,OAAAC,GAKjB,KAAK,WAAW,IAAIG,EAASJ,CAAG,GAChC,KAAK,YAAYG,EAAQ,SAAS,GAClC,KAAK,aAAaA,EAAQ,cAAc,GACxC,KAAK,WAAWA,EAAQ,YAAY,KACpC,KAAK,QAAQA,EAAQ,UAAU;AAE/B,UAAME,IAAO,IAAIN,EAAA;AACjB,IAAAM,EAAK,SAAS,IAAI,CAACL,EAAI,QAAQ,GAAG,CAACA,EAAI,MAAM,GAC7C,KAAK,SAASK,CAAI;AAClB,eAAWC,KAAQlB,GAAW;AAC5B,YAAMmB,IAAQ,IAAIR,EAAA;AAClB,WAAK,OAAO,IAAIO,GAAMC,CAAK,GAC3BF,EAAK,SAASE,CAAK;AACnB,YAAMC,IAAIP,EAAKK,CAAI;AACnB,UAAIE,GAAG,WAAWN,GAAU;AAC1B,cAAMO,IAAS,IAAIC,EAAOR,EAAS,IAAIM,EAAE,SAASA,EAAE,KAAK,CAAC;AAC1D,QAAAC,EAAO,OAAO,IAAID,EAAE,WAAW,KAAKA,EAAE,WAAW,CAAC,GAElDC,EAAO,MAAM,IAAI,IAAI,KAAK,SAAS,GACnC,KAAK,QAAQ,IAAIH,GAAMG,CAAM,GAC7BF,EAAM,SAASE,CAAM;AAAA,MACvB;AAAA,IACF;AAEA,SAAK,MAAM,IAAI,KAAK,SAAS;AAAA,EAC/B;AAAA,EA/BmB;AAAA,EACA;AAAA,EAZF;AAAA,EACA,8BAAc,IAAA;AAAA,EACd,6BAAa,IAAA;AAAA,EACtB,SAAwB;AAAA,EACxB;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAqCjB,IAAI,OAAOE,GAAa;AACtB,SAAK,MAAM,IAAI,KAAK,YAAYA;AAAA,EAClC;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,MAAM,IAAI,IAAI,KAAK;AAAA,EACjC;AAAA;AAAA,EAGA,IAAI,aAA4B;AAC9B,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAGA,cAAcC,GAAmD;AAC/D,QAAI,CAAC,KAAK,OAAQ,QAAO;AACzB,UAAMC,IAAI,KAAK,OAAOD,CAAI;AAC1B,WAAO,EAAE,GAAG,KAAK,KAAKC,EAAE,IAAI,KAAK,IAAI,QAAQ,KAAK,KAAK,MAAM,GAAG,GAAG,KAAK,KAAKA,EAAE,IAAI,KAAK,IAAI,UAAU,KAAK,MAAM,EAAA;AAAA,EACnH;AAAA,EAEA,QAAQC,GAAqB;AAC3B,UAAMD,IAAI,KAAK,SAAS,MAAMC,GAAM,KAAK,KAAK;AAC9C,SAAK,SAASD,GACd,KAAK,OAAOC,EAAK;AACjB,eAAWR,KAAQlB,EAAW,MAAK,MAAMkB,GAAMO,CAAC;AAChD,WAAO;AAAA,EACT;AAAA,EAES,QAAQV,GAAqD;AACpE,UAAM,QAAQA,KAAW,EAAE,UAAU,IAAM;AAAA,EAC7C;AAAA,EAEQ,MAAMG,GAAeO,GAAiB;AAC5C,UAAMN,IAAQ,KAAK,OAAO,IAAID,CAAI,GAC5BL,IAAO,KAAK,KAAKK,CAAI,KAAK,CAAA,GAC1BG,IAAS,KAAK,QAAQ,IAAIH,CAAI,GAC9B,CAACS,GAAGlB,CAAC,IAAI,KAAK,KAAKS,GAAMO,CAAC,GAC1BG,IAAQ,KAAK,MAAMnB,EAAE,IAAIkB,EAAE,GAAGlB,EAAE,IAAIkB,EAAE,CAAC;AAC7C,QAAIN,GAAQ;AACV,MAAAA,EAAO,SAAS,IAAIM,EAAE,GAAGA,EAAE,CAAC,GAC5BN,EAAO,WAAWO,IAAQ,KAAK,KAAK,GAChCf,EAAK,WAAWQ,EAAO,QAAQ,SAAS,MAAGA,EAAO,MAAM,IAAI,KAAK,MAAMZ,EAAE,IAAIkB,EAAE,GAAGlB,EAAE,IAAIkB,EAAE,CAAC,IAAIN,EAAO,QAAQ;AAClH;AAAA,IACF;AACA,QAAIb,IAAIW,EAAM,SAAS,CAAC;AACxB,IAAKX,MACHA,IAAI,IAAIqB,EAAA,GACRV,EAAM,SAASX,CAAC,IAElBA,EAAE,MAAA;AACF,UAAMsB,IAAOjB,EAAK,SAASZ,EAAeiB,CAAI,GACxCb,IAAQH,EAAK,IAAIgB,CAAI,IAAId,EAAQ0B,GAAMZ,EAAK,SAAS,MAAM,KAAKA,MAAS,aAAa,KAAK,IAAI,eAAe,KAAK,IAAI,SAAS,IAAIY,GACpIC,IAAUlB,EAAK,YAAY,SAAY,UAAWA,EAAK,SACvDmB,IAASD,MAAY,OAAO,OAAO,EAAE,OAAOA,GAAS,OAAO,IAAA;AAClE,QAAIb,MAAS,QAAQ;AACnB,YAAMX,IAAIM,EAAK,UAAU,SAAYA,EAAK,QAAQ,IAAI,KAAK;AAC3D,MAAAL,EAAE,OAAOmB,EAAE,GAAGA,EAAE,GAAGpB,CAAC,EAAE,KAAKF,CAAK,GAC5B2B,KAAQxB,EAAE,OAAOwB,CAAM;AAC3B;AAAA,IACF;AACA,QAAId,MAAS,SAAS;AACpB,YAAMe,IAAIpB,EAAK,SAAS,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,IAAI;AAClF,UAAI,KAAK;AACP,QAAAL,EAAE,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAGyB,IAAI,IAAI,CAAC,EAAE,KAAK5B,CAAK;AAAA,WACrD;AACL,cAAM6B,IAAM,KAAK,MAAMzB,EAAE,IAAIkB,EAAE,GAAGlB,EAAE,IAAIkB,EAAE,CAAC;AAC3C,QAAAnB,EAAE,UAAU,CAACyB,IAAI,GAAG,MAAMA,GAAGC,IAAM,GAAG,KAAK,IAAI,GAAGD,IAAI,CAAC,CAAC,EAAE,KAAK5B,CAAK,GACpEG,EAAE,SAAS,IAAImB,EAAE,GAAGA,EAAE,CAAC,GACvBnB,EAAE,WAAWoB,IAAQ,KAAK,KAAK,GAC3BI,KAAQxB,EAAE,OAAOwB,CAAM;AAC3B;AAAA,MACF;AACA,MAAAxB,EAAE,SAAS,IAAI,GAAG,CAAC,GACnBA,EAAE,WAAW,GACTwB,KAAQxB,EAAE,OAAOwB,CAAM;AAC3B;AAAA,IACF;AACA,UAAMC,IAAIpB,EAAK,SAAS,KAAK,IAAI;AACjC,IAAAL,EAAE,SAAS,IAAI,GAAG,CAAC,GACnBA,EAAE,WAAW,GAETwB,KAAQxB,EAAE,OAAOmB,EAAE,GAAGA,EAAE,CAAC,EAAE,OAAOlB,EAAE,GAAGA,EAAE,CAAC,EAAE,OAAO,EAAE,OAAOuB,EAAO,OAAO,OAAOC,IAAID,EAAO,QAAQ,GAAG,KAAK,QAAA,CAAS,GACzHxB,EAAE,OAAOmB,EAAE,GAAGA,EAAE,CAAC,EAAE,OAAOlB,EAAE,GAAGA,EAAE,CAAC,EAAE,OAAO,EAAE,OAAAJ,GAAO,OAAO4B,GAAG,KAAK,SAAS;AAAA,EAC9E;AAAA;AAAA,EAGQ,KAAKf,GAAeO,GAA2B;AACrD,QAAIP,MAAS,QAAQ;AACnB,YAAMiB,IAAI,EAAE,GAAGV,EAAE,KAAK,GAAG,GAAGA,EAAE,KAAK,IAAI,KAAK,SAAA;AAC5C,aAAO,CAACU,GAAG,EAAE,GAAGA,EAAE,GAAG,GAAGA,EAAE,IAAI,GAAG;AAAA,IACnC;AACA,QAAIjB,MAAS,QAAS,QAAO,CAACO,EAAE,OAAO,EAAE,IAAIA,EAAE,KAAK,IAAIA,EAAE,KAAK,KAAK,GAAG,IAAIA,EAAE,KAAK,IAAIA,EAAE,KAAK,KAAK,EAAA,CAAG;AACrG,UAAM,CAACW,GAAMC,CAAE,IAAIlC,EAAMe,CAAI;AAC7B,WAAO,CAACO,EAAEW,CAAI,GAAYX,EAAEY,CAAE,CAAU;AAAA,EAC1C;AACF;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const f = Math.PI / 180, a = [90, 2, 0, 2];
|
|
2
|
+
function c(i, t, h) {
|
|
3
|
+
return { x: i.x + t, y: i.y + h };
|
|
4
|
+
}
|
|
5
|
+
function d(i, t) {
|
|
6
|
+
const [h, n, r, o] = t, e = h * f, s = (h + r) * f, l = c(i, Math.cos(e) * n, Math.sin(e) * n);
|
|
7
|
+
return [l, c(l, Math.cos(s) * o, Math.sin(s) * o), s];
|
|
8
|
+
}
|
|
9
|
+
class p {
|
|
10
|
+
def;
|
|
11
|
+
constructor(t) {
|
|
12
|
+
this.def = t;
|
|
13
|
+
}
|
|
14
|
+
solve(t, h = !1) {
|
|
15
|
+
const n = this.def, r = h ? n.bulkyShoulder : 0, o = { x: n.chest[0], y: n.chest[1] + (t.by ?? 0) }, e = c(o, n.shoulderF[0] + r, n.shoulderF[1]), s = c(o, n.shoulderB[0] - r, n.shoulderB[1]), l = t.hipDx ?? 0, u = t.hipDy ?? 0, B = { x: n.hipF[0] + l, y: n.hipF[1] + u }, F = { x: n.hipB[0] + l, y: n.hipB[1] + u }, [x, y, m] = this.frontArm(e, t.armF ?? a), [w, b] = d(s, t.armB ?? a), [k, D] = d(B, t.legF ?? a), [M, A] = d(F, t.legB ?? a), g = c(o, t.headDx ?? 0, t.headDy ?? 0);
|
|
16
|
+
return { chest: o, head: g, shoulderF: e, elbowF: x, wristF: y, shoulderB: s, elbowB: w, wristB: b, hipF: B, kneeF: k, ankleF: D, hipB: F, kneeB: M, ankleB: A, forearm: m };
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Elbow, wrist and forearm direction of the front arm (or of its motion smear) hung from `shoulder`. The fist keeps
|
|
20
|
+
* the frame's last column for its outline: an arm reaching past that (a swing, a thrust, a draw on a bulky body) is
|
|
21
|
+
* pulled back whole, so the forearm — and the weapon laid along it — keeps its angle.
|
|
22
|
+
*/
|
|
23
|
+
frontArm(t, h) {
|
|
24
|
+
const n = this.def, [r, o, e] = d(t, h), s = Math.max(0, o.x - (n.width - n.limbWidth - 1));
|
|
25
|
+
return [c(r, -s, 0), c(o, -s, 0), e];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
p as Skeleton
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.js","sources":["../../src/rig/Skeleton.ts"],"sourcesContent":["import type { Joints, Limb, Point, RigDef, RigPose } from './rigTypes';\n\nconst RAD = Math.PI / 180;\nconst DOWN: Limb = [90, 2, 0, 2];\n\nfunction add(p: Point, dx: number, dy: number): Point {\n return { x: p.x + dx, y: p.y + dy };\n}\n\n/** Elbow and wrist (or knee and ankle) of a limb hung from `root`. */\nfunction chain(root: Point, limb: Limb): [Point, Point, number] {\n const [a1, l1, a2, l2] = limb;\n const upper = a1 * RAD;\n const lower = (a1 + a2) * RAD;\n const mid = add(root, Math.cos(upper) * l1, Math.sin(upper) * l1);\n return [mid, add(mid, Math.cos(lower) * l2, Math.sin(lower) * l2), lower];\n}\n\n/** Turns a pose (bone angles and lengths) into joint positions on the character's 20x24 grid. */\nexport class Skeleton {\n private readonly def: RigDef;\n\n constructor(def: RigDef) {\n this.def = def;\n }\n\n solve(pose: RigPose, bulky = false): Joints {\n const d = this.def;\n const wide = bulky ? d.bulkyShoulder : 0;\n const chest = { x: d.chest[0], y: d.chest[1] + (pose.by ?? 0) };\n const shoulderF = add(chest, d.shoulderF[0] + wide, d.shoulderF[1]);\n const shoulderB = add(chest, d.shoulderB[0] - wide, d.shoulderB[1]);\n const hx = pose.hipDx ?? 0;\n const hy = pose.hipDy ?? 0;\n const hipF = { x: d.hipF[0] + hx, y: d.hipF[1] + hy };\n const hipB = { x: d.hipB[0] + hx, y: d.hipB[1] + hy };\n const [elbowF, wristF, forearm] = this.frontArm(shoulderF, pose.armF ?? DOWN);\n const [elbowB, wristB] = chain(shoulderB, pose.armB ?? DOWN);\n const [kneeF, ankleF] = chain(hipF, pose.legF ?? DOWN);\n const [kneeB, ankleB] = chain(hipB, pose.legB ?? DOWN);\n const head = add(chest, pose.headDx ?? 0, pose.headDy ?? 0);\n return { chest, head, shoulderF, elbowF, wristF, shoulderB, elbowB, wristB, hipF, kneeF, ankleF, hipB, kneeB, ankleB, forearm };\n }\n\n /**\n * Elbow, wrist and forearm direction of the front arm (or of its motion smear) hung from `shoulder`. The fist keeps\n * the frame's last column for its outline: an arm reaching past that (a swing, a thrust, a draw on a bulky body) is\n * pulled back whole, so the forearm — and the weapon laid along it — keeps its angle.\n */\n frontArm(shoulder: Point, limb: Limb): [Point, Point, number] {\n const d = this.def;\n const [elbow, wrist, forearm] = chain(shoulder, limb);\n const over = Math.max(0, wrist.x - (d.width - d.limbWidth - 1));\n return [add(elbow, -over, 0), add(wrist, -over, 0), forearm];\n }\n}\n"],"names":["RAD","DOWN","add","p","dx","dy","chain","root","limb","a1","l1","a2","l2","upper","lower","mid","Skeleton","def","pose","bulky","d","wide","chest","shoulderF","shoulderB","hx","hy","hipF","hipB","elbowF","wristF","forearm","elbowB","wristB","kneeF","ankleF","kneeB","ankleB","head","shoulder","elbow","wrist","over"],"mappings":"AAEA,MAAMA,IAAM,KAAK,KAAK,KAChBC,IAAa,CAAC,IAAI,GAAG,GAAG,CAAC;AAE/B,SAASC,EAAIC,GAAUC,GAAYC,GAAmB;AACpD,SAAO,EAAE,GAAGF,EAAE,IAAIC,GAAI,GAAGD,EAAE,IAAIE,EAAA;AACjC;AAGA,SAASC,EAAMC,GAAaC,GAAoC;AAC9D,QAAM,CAACC,GAAIC,GAAIC,GAAIC,CAAE,IAAIJ,GACnBK,IAAQJ,IAAKT,GACbc,KAASL,IAAKE,KAAMX,GACpBe,IAAMb,EAAIK,GAAM,KAAK,IAAIM,CAAK,IAAIH,GAAI,KAAK,IAAIG,CAAK,IAAIH,CAAE;AAChE,SAAO,CAACK,GAAKb,EAAIa,GAAK,KAAK,IAAID,CAAK,IAAIF,GAAI,KAAK,IAAIE,CAAK,IAAIF,CAAE,GAAGE,CAAK;AAC1E;AAGO,MAAME,EAAS;AAAA,EACH;AAAA,EAEjB,YAAYC,GAAa;AACvB,SAAK,MAAMA;AAAA,EACb;AAAA,EAEA,MAAMC,GAAeC,IAAQ,IAAe;AAC1C,UAAMC,IAAI,KAAK,KACTC,IAAOF,IAAQC,EAAE,gBAAgB,GACjCE,IAAQ,EAAE,GAAGF,EAAE,MAAM,CAAC,GAAG,GAAGA,EAAE,MAAM,CAAC,KAAKF,EAAK,MAAM,GAAA,GACrDK,IAAYrB,EAAIoB,GAAOF,EAAE,UAAU,CAAC,IAAIC,GAAMD,EAAE,UAAU,CAAC,CAAC,GAC5DI,IAAYtB,EAAIoB,GAAOF,EAAE,UAAU,CAAC,IAAIC,GAAMD,EAAE,UAAU,CAAC,CAAC,GAC5DK,IAAKP,EAAK,SAAS,GACnBQ,IAAKR,EAAK,SAAS,GACnBS,IAAO,EAAE,GAAGP,EAAE,KAAK,CAAC,IAAIK,GAAI,GAAGL,EAAE,KAAK,CAAC,IAAIM,EAAA,GAC3CE,IAAO,EAAE,GAAGR,EAAE,KAAK,CAAC,IAAIK,GAAI,GAAGL,EAAE,KAAK,CAAC,IAAIM,EAAA,GAC3C,CAACG,GAAQC,GAAQC,CAAO,IAAI,KAAK,SAASR,GAAWL,EAAK,QAAQjB,CAAI,GACtE,CAAC+B,GAAQC,CAAM,IAAI3B,EAAMkB,GAAWN,EAAK,QAAQjB,CAAI,GACrD,CAACiC,GAAOC,CAAM,IAAI7B,EAAMqB,GAAMT,EAAK,QAAQjB,CAAI,GAC/C,CAACmC,GAAOC,CAAM,IAAI/B,EAAMsB,GAAMV,EAAK,QAAQjB,CAAI,GAC/CqC,IAAOpC,EAAIoB,GAAOJ,EAAK,UAAU,GAAGA,EAAK,UAAU,CAAC;AAC1D,WAAO,EAAE,OAAAI,GAAO,MAAAgB,GAAM,WAAAf,GAAW,QAAAM,GAAQ,QAAAC,GAAQ,WAAAN,GAAW,QAAAQ,GAAQ,QAAAC,GAAQ,MAAAN,GAAM,OAAAO,GAAO,QAAAC,GAAQ,MAAAP,GAAM,OAAAQ,GAAO,QAAAC,GAAQ,SAAAN,EAAA;AAAA,EACxH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAASQ,GAAiB/B,GAAoC;AAC5D,UAAMY,IAAI,KAAK,KACT,CAACoB,GAAOC,GAAOV,CAAO,IAAIzB,EAAMiC,GAAU/B,CAAI,GAC9CkC,IAAO,KAAK,IAAI,GAAGD,EAAM,KAAKrB,EAAE,QAAQA,EAAE,YAAY,EAAE;AAC9D,WAAO,CAAClB,EAAIsC,GAAO,CAACE,GAAM,CAAC,GAAGxC,EAAIuC,GAAO,CAACC,GAAM,CAAC,GAAGX,CAAO;AAAA,EAC7D;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"humanoid.js","sources":["../../src/rig/humanoid.ts"],"sourcesContent":["import type { RigDef } from './rigTypes';\nimport def from './humanoid.json';\n\n/** The proportions of the built-in 20×24 humanoid: chest, shoulders, hips and limb width. */\nexport const HUMANOID_RIG: RigDef = def as RigDef;\n"],"names":["HUMANOID_RIG","def"],"mappings":";AAIO,MAAMA,IAAuBC;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const i = 1, l = 20, r = 24, t = [10, 13], s = [3, 1], c = [-4, 1], o = 1, h = [11, 19], e = [9, 19], n = 2, d = 0.75, a = 0.72, u = {
|
|
2
|
+
scale: 1,
|
|
3
|
+
width: 20,
|
|
4
|
+
height: 24,
|
|
5
|
+
chest: t,
|
|
6
|
+
shoulderF: s,
|
|
7
|
+
shoulderB: c,
|
|
8
|
+
bulkyShoulder: o,
|
|
9
|
+
hipF: h,
|
|
10
|
+
hipB: e,
|
|
11
|
+
limbWidth: n,
|
|
12
|
+
backShade: d,
|
|
13
|
+
backArmShade: a
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
a as backArmShade,
|
|
17
|
+
d as backShade,
|
|
18
|
+
o as bulkyShoulder,
|
|
19
|
+
t as chest,
|
|
20
|
+
u as default,
|
|
21
|
+
r as height,
|
|
22
|
+
e as hipB,
|
|
23
|
+
h as hipF,
|
|
24
|
+
n as limbWidth,
|
|
25
|
+
i as scale,
|
|
26
|
+
c as shoulderB,
|
|
27
|
+
s as shoulderF,
|
|
28
|
+
l as width
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=humanoid.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"humanoid.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import e from "./poses.json.js";
|
|
2
|
+
const A = e, s = (o, p) => Array.from({ length: p }, (R, E) => `${o}${E}`), H = {
|
|
3
|
+
idle: { poses: s("BREATHE", 6), fps: 6 },
|
|
4
|
+
walk: { poses: s("STRIDE", 6), fps: 10 },
|
|
5
|
+
run: { poses: s("JOG", 8), fps: 14 },
|
|
6
|
+
roll: { poses: s("ROLL", 12), fps: 30, loop: !1, blend: !1 },
|
|
7
|
+
dash: { poses: ["DASH"], fps: 1, loop: !1 },
|
|
8
|
+
hurt: { poses: ["HURT", "BREATHE0"], fps: 5, loop: !1 },
|
|
9
|
+
dizzy: { poses: ["DIZZY", "BREATHE0"], fps: 2 },
|
|
10
|
+
crouch: { poses: ["CROUCH"], fps: 1, loop: !1 },
|
|
11
|
+
kneel: { poses: ["KNEEL"], fps: 1, loop: !1 },
|
|
12
|
+
sit: { poses: ["SIT"], fps: 1, loop: !1 },
|
|
13
|
+
sitGround: { poses: ["SIT_GROUND"], fps: 1, loop: !1 },
|
|
14
|
+
pick: { poses: ["CROUCH", "PICK", "CROUCH"], fps: 6, loop: !1 },
|
|
15
|
+
lookBack: { poses: ["LOOK_BACK"], fps: 1, loop: !1 },
|
|
16
|
+
stretch: { poses: ["BREATHE0", "STRETCH", "STRETCH", "BREATHE0"], fps: 3, loop: !1 },
|
|
17
|
+
cheer: { poses: ["BREATHE0", "CHEER", "CHEER"], fps: 6, loop: !1 },
|
|
18
|
+
wave: { poses: ["WAVE_A", "WAVE_B"], fps: 4 },
|
|
19
|
+
dance: { poses: ["DANCE_A", "DANCE_B"], fps: 3 },
|
|
20
|
+
slash: { poses: ["SLASH_READY", "SLASH_WIND", "SLASH_SWEEP", "SLASH_FOLLOW", "SLASH_END", "SLASH_RECOVER"], durations: [60, 90, 40, 60, 90, 120], loop: !1 },
|
|
21
|
+
thrust: { poses: ["THRUST_READY", "THRUST_LUNGE", "THRUST_MID", "THRUST_END", "THRUST_RECOVER"], durations: [80, 50, 60, 100, 120], loop: !1 },
|
|
22
|
+
overhead: { poses: ["OVERHEAD_READY", "OVERHEAD", "OVERHEAD_MID", "OVERHEAD_FALL"], durations: [90, 140, 50, 160], loop: !1 },
|
|
23
|
+
cast: { poses: ["CAST_CHARGE", "CAST", "CAST_RELEASE"], durations: [220, 120, 200], loop: !1 },
|
|
24
|
+
throw: { poses: ["THROW_READY", "THROW_WIND", "THROW_RELEASE", "THROW_MID", "THROW_RECOVER"], durations: [70, 110, 40, 70, 120], loop: !1 }
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
H as HUMANOID_CLIPS,
|
|
28
|
+
A as HUMANOID_POSES
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=humanoidPoses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"humanoidPoses.js","sources":["../../src/rig/humanoidPoses.ts"],"sourcesContent":["import type { RigPose } from './rigTypes';\nimport poses from './poses.json';\nimport type { PoseClip } from './PosePlayer';\n\n/**\n * The built-in humanoid's pose library: 72 poses for `HUMANOID_RIG`, made for a 20×24 character facing right, and\n * clips that string them into motion. Use them as they are, mix them (`overlay`, `upperOver`), or as the starting\n * point for your own.\n */\nexport const HUMANOID_POSES: Readonly<Record<string, RigPose>> = poses as unknown as Record<string, RigPose>;\n\nconst seq = (prefix: string, n: number) => Array.from({ length: n }, (_, i) => `${prefix}${i}`);\n\n/** Ready-made clips over `HUMANOID_POSES`. Looping clips blend from their last pose back into the first. */\nexport const HUMANOID_CLIPS = {\n idle: { poses: seq('BREATHE', 6), fps: 6 },\n walk: { poses: seq('STRIDE', 6), fps: 10 },\n run: { poses: seq('JOG', 8), fps: 14 },\n roll: { poses: seq('ROLL', 12), fps: 30, loop: false, blend: false },\n dash: { poses: ['DASH'], fps: 1, loop: false },\n hurt: { poses: ['HURT', 'BREATHE0'], fps: 5, loop: false },\n dizzy: { poses: ['DIZZY', 'BREATHE0'], fps: 2 },\n crouch: { poses: ['CROUCH'], fps: 1, loop: false },\n kneel: { poses: ['KNEEL'], fps: 1, loop: false },\n sit: { poses: ['SIT'], fps: 1, loop: false },\n sitGround: { poses: ['SIT_GROUND'], fps: 1, loop: false },\n pick: { poses: ['CROUCH', 'PICK', 'CROUCH'], fps: 6, loop: false },\n lookBack: { poses: ['LOOK_BACK'], fps: 1, loop: false },\n stretch: { poses: ['BREATHE0', 'STRETCH', 'STRETCH', 'BREATHE0'], fps: 3, loop: false },\n cheer: { poses: ['BREATHE0', 'CHEER', 'CHEER'], fps: 6, loop: false },\n wave: { poses: ['WAVE_A', 'WAVE_B'], fps: 4 },\n dance: { poses: ['DANCE_A', 'DANCE_B'], fps: 3 },\n slash: { poses: ['SLASH_READY', 'SLASH_WIND', 'SLASH_SWEEP', 'SLASH_FOLLOW', 'SLASH_END', 'SLASH_RECOVER'], durations: [60, 90, 40, 60, 90, 120], loop: false },\n thrust: { poses: ['THRUST_READY', 'THRUST_LUNGE', 'THRUST_MID', 'THRUST_END', 'THRUST_RECOVER'], durations: [80, 50, 60, 100, 120], loop: false },\n overhead: { poses: ['OVERHEAD_READY', 'OVERHEAD', 'OVERHEAD_MID', 'OVERHEAD_FALL'], durations: [90, 140, 50, 160], loop: false },\n cast: { poses: ['CAST_CHARGE', 'CAST', 'CAST_RELEASE'], durations: [220, 120, 200], loop: false },\n throw: { poses: ['THROW_READY', 'THROW_WIND', 'THROW_RELEASE', 'THROW_MID', 'THROW_RECOVER'], durations: [70, 110, 40, 70, 120], loop: false },\n} satisfies Record<string, PoseClip>;\n\nexport type HumanoidClip = keyof typeof HUMANOID_CLIPS;\n"],"names":["HUMANOID_POSES","poses","seq","prefix","n","_","i","HUMANOID_CLIPS"],"mappings":";AASO,MAAMA,IAAoDC,GAE3DC,IAAM,CAACC,GAAgBC,MAAc,MAAM,KAAK,EAAE,QAAQA,EAAA,GAAK,CAACC,GAAGC,MAAM,GAAGH,CAAM,GAAGG,CAAC,EAAE,GAGjFC,IAAiB;AAAA,EAC5B,MAAM,EAAE,OAAOL,EAAI,WAAW,CAAC,GAAG,KAAK,EAAA;AAAA,EACvC,MAAM,EAAE,OAAOA,EAAI,UAAU,CAAC,GAAG,KAAK,GAAA;AAAA,EACtC,KAAK,EAAE,OAAOA,EAAI,OAAO,CAAC,GAAG,KAAK,GAAA;AAAA,EAClC,MAAM,EAAE,OAAOA,EAAI,QAAQ,EAAE,GAAG,KAAK,IAAI,MAAM,IAAO,OAAO,GAAA;AAAA,EAC7D,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EACvC,MAAM,EAAE,OAAO,CAAC,QAAQ,UAAU,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EACnD,OAAO,EAAE,OAAO,CAAC,SAAS,UAAU,GAAG,KAAK,EAAA;AAAA,EAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EACzC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EACrC,WAAW,EAAE,OAAO,CAAC,YAAY,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EAClD,MAAM,EAAE,OAAO,CAAC,UAAU,QAAQ,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EAC3D,UAAU,EAAE,OAAO,CAAC,WAAW,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EAChD,SAAS,EAAE,OAAO,CAAC,YAAY,WAAW,WAAW,UAAU,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EAChF,OAAO,EAAE,OAAO,CAAC,YAAY,SAAS,OAAO,GAAG,KAAK,GAAG,MAAM,GAAA;AAAA,EAC9D,MAAM,EAAE,OAAO,CAAC,UAAU,QAAQ,GAAG,KAAK,EAAA;AAAA,EAC1C,OAAO,EAAE,OAAO,CAAC,WAAW,SAAS,GAAG,KAAK,EAAA;AAAA,EAC7C,OAAO,EAAE,OAAO,CAAC,eAAe,cAAc,eAAe,gBAAgB,aAAa,eAAe,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,MAAM,GAAA;AAAA,EACxJ,QAAQ,EAAE,OAAO,CAAC,gBAAgB,gBAAgB,cAAc,cAAc,gBAAgB,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,MAAM,GAAA;AAAA,EAC1I,UAAU,EAAE,OAAO,CAAC,kBAAkB,YAAY,gBAAgB,eAAe,GAAG,WAAW,CAAC,IAAI,KAAK,IAAI,GAAG,GAAG,MAAM,GAAA;AAAA,EACzH,MAAM,EAAE,OAAO,CAAC,eAAe,QAAQ,cAAc,GAAG,WAAW,CAAC,KAAK,KAAK,GAAG,GAAG,MAAM,GAAA;AAAA,EAC1F,OAAO,EAAE,OAAO,CAAC,eAAe,cAAc,iBAAiB,aAAa,eAAe,GAAG,WAAW,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,MAAM,GAAA;AACzI;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function n(r, e, i) {
|
|
2
|
+
return r + (e - r) * i;
|
|
3
|
+
}
|
|
4
|
+
function c(r, e, i) {
|
|
5
|
+
let t = (e - r) % 360;
|
|
6
|
+
return t > 180 && (t -= 360), t < -180 && (t += 360), r + t * i;
|
|
7
|
+
}
|
|
8
|
+
function l(r, e, i) {
|
|
9
|
+
return !r || !e ? i < 1 ? r ?? e : e ?? r : [c(r[0], e[0], i), n(r[1], e[1], i), c(r[2], e[2], i), n(r[3], e[3], i)];
|
|
10
|
+
}
|
|
11
|
+
function u(r, e, i) {
|
|
12
|
+
if (!(r === void 0 && e === void 0))
|
|
13
|
+
return n(r ?? 0, e ?? 0, i);
|
|
14
|
+
}
|
|
15
|
+
function h(r, e, i) {
|
|
16
|
+
return i <= 0 ? r : i >= 1 ? e : {
|
|
17
|
+
...r,
|
|
18
|
+
by: u(r.by, e.by, i),
|
|
19
|
+
armF: l(r.armF, e.armF, i),
|
|
20
|
+
armB: l(r.armB, e.armB, i),
|
|
21
|
+
legF: l(r.legF, e.legF, i),
|
|
22
|
+
legB: l(r.legB, e.legB, i),
|
|
23
|
+
hipDx: u(r.hipDx, e.hipDx, i),
|
|
24
|
+
hipDy: u(r.hipDy, e.hipDy, i),
|
|
25
|
+
headDx: u(r.headDx, e.headDx, i),
|
|
26
|
+
headDy: u(r.headDy, e.headDy, i),
|
|
27
|
+
smearArm: r.smearArm,
|
|
28
|
+
curl: r.curl && e.curl ? [n(r.curl[0], e.curl[0], i), n(r.curl[1], e.curl[1], i)] : r.curl
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function o(r, e) {
|
|
32
|
+
const i = { ...r };
|
|
33
|
+
for (const [t, p] of Object.entries(e)) p !== void 0 && (i[t] = p);
|
|
34
|
+
return i;
|
|
35
|
+
}
|
|
36
|
+
function D(r, e) {
|
|
37
|
+
return {
|
|
38
|
+
...r,
|
|
39
|
+
by: Math.max(-1, (r.by ?? 0) + (e.by ?? 0)),
|
|
40
|
+
legF: e.legF,
|
|
41
|
+
legB: e.legB,
|
|
42
|
+
hipDx: e.hipDx,
|
|
43
|
+
hipDy: e.hipDy,
|
|
44
|
+
// the far arm swings with the run, unless it holds the bow the action draws
|
|
45
|
+
armB: r.armBFront ? r.armB : e.armB,
|
|
46
|
+
trail: e.trail ?? r.trail
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export {
|
|
50
|
+
h as blendPose,
|
|
51
|
+
o as overlay,
|
|
52
|
+
D as upperOver
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=poseMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poseMath.js","sources":["../../src/rig/poseMath.ts"],"sourcesContent":["import type { Limb, RigPose } from './rigTypes';\n\nfunction lerp(a: number, b: number, k: number): number {\n return a + (b - a) * k;\n}\n\n/** Shortest turn from angle a to b, in degrees. */\nfunction lerpDeg(a: number, b: number, k: number): number {\n let d = (b - a) % 360;\n if (d > 180) d -= 360;\n if (d < -180) d += 360;\n return a + d * k;\n}\n\nfunction lerpLimb(a: Limb | undefined, b: Limb | undefined, k: number): Limb | undefined {\n if (!a || !b) return k < 1 ? a ?? b : b ?? a;\n return [lerpDeg(a[0], b[0], k), lerp(a[1], b[1], k), lerpDeg(a[2], b[2], k), lerp(a[3], b[3], k)];\n}\n\nfunction lerpOpt(a: number | undefined, b: number | undefined, k: number): number | undefined {\n if (a === undefined && b === undefined) return undefined;\n return lerp(a ?? 0, b ?? 0, k);\n}\n\n/**\n * The in-between of two poses at `k` (0 = a, 1 = b): bones turn along the shortest way and stretch, offsets slide.\n * What cannot be in between (face, cape trail, the curled torso) stays `a`'s until `b` is reached.\n */\nexport function blendPose(a: RigPose, b: RigPose, k: number): RigPose {\n if (k <= 0) return a;\n if (k >= 1) return b;\n const discrete = a;\n return {\n ...discrete,\n by: lerpOpt(a.by, b.by, k),\n armF: lerpLimb(a.armF, b.armF, k),\n armB: lerpLimb(a.armB, b.armB, k),\n legF: lerpLimb(a.legF, b.legF, k),\n legB: lerpLimb(a.legB, b.legB, k),\n hipDx: lerpOpt(a.hipDx, b.hipDx, k),\n hipDy: lerpOpt(a.hipDy, b.hipDy, k),\n headDx: lerpOpt(a.headDx, b.headDx, k),\n headDy: lerpOpt(a.headDy, b.headDy, k),\n smearArm: a.smearArm,\n curl: a.curl && b.curl ? [lerp(a.curl[0], b.curl[0], k), lerp(a.curl[1], b.curl[1], k)] : a.curl,\n };\n}\n\n/** `top` laid over `base`: every field `top` sets wins. */\nexport function overlay(base: RigPose, top: RigPose): RigPose {\n const out: RigPose = { ...base };\n for (const [key, value] of Object.entries(top)) if (value !== undefined) (out as Record<string, unknown>)[key] = value;\n return out;\n}\n\n/**\n * An action's upper body over a moving (or seated) body: the arms, head and face act while the legs keep the gait.\n * The chest takes both bobs, but rises at most a pixel so a tall hat keeps its headroom.\n */\nexport function upperOver(action: RigPose, legs: RigPose): RigPose {\n return {\n ...action,\n by: Math.max(-1, (action.by ?? 0) + (legs.by ?? 0)),\n legF: legs.legF,\n legB: legs.legB,\n hipDx: legs.hipDx,\n hipDy: legs.hipDy,\n // the far arm swings with the run, unless it holds the bow the action draws\n armB: action.armBFront ? action.armB : legs.armB,\n trail: legs.trail ?? action.trail,\n };\n}\n"],"names":["lerp","a","b","k","lerpDeg","d","lerpLimb","lerpOpt","blendPose","overlay","base","top","out","key","value","upperOver","action","legs"],"mappings":"AAEA,SAASA,EAAKC,GAAWC,GAAWC,GAAmB;AACrD,SAAOF,KAAKC,IAAID,KAAKE;AACvB;AAGA,SAASC,EAAQH,GAAWC,GAAWC,GAAmB;AACxD,MAAIE,KAAKH,IAAID,KAAK;AAClB,SAAII,IAAI,QAAKA,KAAK,MACdA,IAAI,SAAMA,KAAK,MACZJ,IAAII,IAAIF;AACjB;AAEA,SAASG,EAASL,GAAqBC,GAAqBC,GAA6B;AACvF,SAAI,CAACF,KAAK,CAACC,IAAUC,IAAI,IAAIF,KAAKC,IAAIA,KAAKD,IACpC,CAACG,EAAQH,EAAE,CAAC,GAAGC,EAAE,CAAC,GAAGC,CAAC,GAAGH,EAAKC,EAAE,CAAC,GAAGC,EAAE,CAAC,GAAGC,CAAC,GAAGC,EAAQH,EAAE,CAAC,GAAGC,EAAE,CAAC,GAAGC,CAAC,GAAGH,EAAKC,EAAE,CAAC,GAAGC,EAAE,CAAC,GAAGC,CAAC,CAAC;AAClG;AAEA,SAASI,EAAQN,GAAuBC,GAAuBC,GAA+B;AAC5F,MAAI,EAAAF,MAAM,UAAaC,MAAM;AAC7B,WAAOF,EAAKC,KAAK,GAAGC,KAAK,GAAGC,CAAC;AAC/B;AAMO,SAASK,EAAUP,GAAYC,GAAYC,GAAoB;AACpE,SAAIA,KAAK,IAAUF,IACfE,KAAK,IAAUD,IAEZ;AAAA,IACL,GAFeD;AAAA,IAGf,IAAIM,EAAQN,EAAE,IAAIC,EAAE,IAAIC,CAAC;AAAA,IACzB,MAAMG,EAASL,EAAE,MAAMC,EAAE,MAAMC,CAAC;AAAA,IAChC,MAAMG,EAASL,EAAE,MAAMC,EAAE,MAAMC,CAAC;AAAA,IAChC,MAAMG,EAASL,EAAE,MAAMC,EAAE,MAAMC,CAAC;AAAA,IAChC,MAAMG,EAASL,EAAE,MAAMC,EAAE,MAAMC,CAAC;AAAA,IAChC,OAAOI,EAAQN,EAAE,OAAOC,EAAE,OAAOC,CAAC;AAAA,IAClC,OAAOI,EAAQN,EAAE,OAAOC,EAAE,OAAOC,CAAC;AAAA,IAClC,QAAQI,EAAQN,EAAE,QAAQC,EAAE,QAAQC,CAAC;AAAA,IACrC,QAAQI,EAAQN,EAAE,QAAQC,EAAE,QAAQC,CAAC;AAAA,IACrC,UAAUF,EAAE;AAAA,IACZ,MAAMA,EAAE,QAAQC,EAAE,OAAO,CAACF,EAAKC,EAAE,KAAK,CAAC,GAAGC,EAAE,KAAK,CAAC,GAAGC,CAAC,GAAGH,EAAKC,EAAE,KAAK,CAAC,GAAGC,EAAE,KAAK,CAAC,GAAGC,CAAC,CAAC,IAAIF,EAAE;AAAA,EAAA;AAEhG;AAGO,SAASQ,EAAQC,GAAeC,GAAuB;AAC5D,QAAMC,IAAe,EAAE,GAAGF,EAAA;AAC1B,aAAW,CAACG,GAAKC,CAAK,KAAK,OAAO,QAAQH,CAAG,EAAG,CAAIG,MAAU,WAAYF,EAAgCC,CAAG,IAAIC;AACjH,SAAOF;AACT;AAMO,SAASG,EAAUC,GAAiBC,GAAwB;AACjE,SAAO;AAAA,IACL,GAAGD;AAAA,IACH,IAAI,KAAK,IAAI,KAAKA,EAAO,MAAM,MAAMC,EAAK,MAAM,EAAE;AAAA,IAClD,MAAMA,EAAK;AAAA,IACX,MAAMA,EAAK;AAAA,IACX,OAAOA,EAAK;AAAA,IACZ,OAAOA,EAAK;AAAA;AAAA,IAEZ,MAAMD,EAAO,YAAYA,EAAO,OAAOC,EAAK;AAAA,IAC5C,OAAOA,EAAK,SAASD,EAAO;AAAA,EAAA;AAEhC;"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
const a = { by: 0, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2] }, e = { by: 0, armF: [45, 2.41, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], breathe: !0, sway: 1 }, r = { by: -1, armF: [45, 2.41, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], breathe: !0, sway: 1 }, l = { by: 0, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], sway: -1 }, m = { by: -1, armF: [45, 2.41, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], breathe: !0, sway: 2 }, B = { by: 1, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], sway: -1 }, F = { by: 0, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2] }, g = { by: 1, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2] }, y = { by: 0, armF: [90, 1.7, 0, 0.85], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 1], legF: [45, 1.41, 45, 2], trail: 1 }, t = { by: -1, armF: [90, 1.7, 0, 0.85], armB: [90, 2, 0, 1], legB: [90, 1, 0, 1], legF: [90, 1, 0, 2], trail: 2 }, c = { by: 0, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [26.6, 2.24, 63.4, 1], legF: [153.4, 2.24, -63.4, 2], trail: 1 }, s = { by: 0, armF: [45, 1.2, 0, 1.2], armB: [90, 1, 45, 1.41], legB: [18.4, 3.16, 71.6, 2], legF: [166, 4.12, -76, 1], trail: 1 }, D = { by: -1, armF: [45, 1.2, 0, 1.2], armB: [90, 1, 45, 1.41], legB: [26.6, 2.24, 63.4, 2], legF: [153.4, 2.24, -63.4, 1], trail: 2 }, b = { by: 0, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [90, 1, 0, 2], legF: [90, 1, 0, 1], trail: 1 }, o = { by: 0, armF: [135, 2.41, 71.6, 1.9], armB: [21.8, 2.69, -55.5, 1.8], legB: [116.6, 2.24, 45, 3.16], legF: [90, 2, -71.6, 3.16], trail: 1 }, n = { by: 1, armF: [135, 2.41, 71.6, 1.9], armB: [21.8, 2.69, -55.5, 1.8], legB: [153.4, 2.24, 26.6, 2], legF: [63.4, 2.24, -18.4, 1.41], trail: 1 }, E = { by: 0, armF: [63.4, 1.9, -108.4, 1.2], armB: [21.8, 2.69, -55.5, 1.8], legB: [90, 0, 45, 1.41], legF: [90, 2, 45, 1.41], trail: 2 }, h = { by: -1, armF: [18.4, 2.69, -90, 2.69], armB: [21.8, 2.69, -55.5, 1.8], legB: [18.4, 3.16, -18.4, 1], legF: [153.4, 2.24, 0, 2.24], trail: 2 }, R = { by: 0, armF: [18.4, 2.69, -90, 2.69], armB: [116.6, 1.12, 63.4, 1.5], legB: [45, 2.83, -26.6, 3.16], legF: [146.3, 3.61, 15.3, 3.16], trail: 1 }, i = { by: 1, armF: [18.4, 2.69, -90, 2.69], armB: [116.6, 1.12, 63.4, 1.5], legB: [33.7, 3.61, 11.3, 1.41], legF: [166, 4.12, 14, 2], trail: 1 }, A = { by: 0, armF: [63.4, 1.9, -108.4, 1.2], armB: [116.6, 1.12, 63.4, 1.5], legB: [45, 2.83, 90, 1.41], legF: [180, 2, -45, 1.41], trail: 2 }, L = { by: -1, armF: [135, 2.41, 71.6, 1.9], armB: [116.6, 1.12, 63.4, 1.5], legB: [90, 1, 63.4, 2.24], legF: [45, 1.41, -45, 1], trail: 2 }, O = { by: 0, curl: [10, 18], hipDx: -1, hipDy: -1, headDx: 0, headDy: 5, legB: [14, 4.12, 57.5, 3.16], legF: [14, 4.12, 57.5, 3.16], armF: [94.4, 2.77, -17.4, 2.84], armB: [90, 2, 0, 1] }, p = { by: 0, curl: [10, 17], hipDx: -1, hipDy: -2, headDx: 3, headDy: 8, legB: [-9.5, 6.08, -80.5, 4], legF: [-9.5, 6.08, -80.5, 4], armF: [-45, 0.6, 63.4, 1.34], armB: [90, 2, 0, 1] }, T = { by: 0, curl: [9, 16], hipDx: -2, hipDy: -3, headDx: 3, headDy: 10, legB: [-39.8, 7.81, -103.3, 5], legF: [-39.8, 7.81, -103.3, 5], armF: [-114.8, 3.04, 46.6, 1.15], armB: [90, 2, 0, 1] }, S = { by: 0, curl: [8, 16], hipDx: -3, hipDy: -3, headDx: 1, headDy: 10, legB: [-74.1, 7.28, -117.3, 5.1], legF: [-74.1, 7.28, -117.3, 5.1], armF: [-145.6, 4.9, 1.2, 1.83], armB: [90, 2, 0, 1] }, H = { by: 0, curl: [9, 17], hipDx: -2, hipDy: -2, headDx: 0, headDy: 8, legB: [-135, 4.24, -135, 5], legF: [-135, 4.24, -135, 5], armF: [171.5, 4.3, -21.7, 2.95], armB: [90, 2, 0, 1] }, d = { by: 0, curl: [10, 18], hipDx: -1, hipDy: -1, headDx: 0, headDy: 5, legB: [90, 1, 18.4, 3.16], legF: [90, 1, 18.4, 3.16], armF: [130.2, 3.62, -11.9, 3.14], armB: [90, 2, 0, 1] }, _ = { by: 0, curl: [10, 18], hipDx: -1, hipDy: -1, headDx: 2, headDy: 7, legB: [0, 5, -45, 1.41], legF: [0, 5, -45, 1.41], armF: [81.9, 1.5, -27.4, 1.83], armB: [90, 2, 0, 1] }, x = { by: 0, curl: [10, 17], hipDx: -1, hipDy: -2, headDx: 3, headDy: 9, legB: [-26.6, 6.71, -90, 4.47], legF: [-26.6, 6.71, -90, 4.47], armF: [-90, 1.27, 63.4, 0.95], armB: [90, 2, 0, 1] }, u = { by: 0, curl: [9, 16], hipDx: -2, hipDy: -3, headDx: 2, headDy: 10, legB: [-56.3, 7.21, -112.4, 5.1], legF: [-56.3, 7.21, -112.4, 5.1], armF: [-130.2, 3.62, 9.3, 1.24], armB: [90, 2, 0, 1] }, I = { by: 0, curl: [9, 17], hipDx: -2, hipDy: -2, headDx: 1, headDy: 9, legB: [-101.3, 5.1, -135, 3.61], legF: [-101.3, 5.1, -135, 3.61], armF: [-170.5, 3.88, -15.2, 2.13], armB: [90, 2, 0, 1] }, C = { by: 0, curl: [10, 18], hipDx: -1, hipDy: -1, headDx: 0, headDy: 7, legB: [-153.4, 2.24, -116.6, 4], legF: [-153.4, 2.24, -116.6, 4], armF: [144.5, 3.66, -9.5, 3.01], armB: [90, 2, 0, 1] }, G = { by: 0, curl: [10, 18], hipDx: -1, hipDy: -1, headDx: 0, headDy: 3, legB: [45, 2.83, 45, 2], legF: [45, 2.83, 45, 2], armF: [113.2, 3.24, -15.1, 3.01], armB: [90, 2, 0, 1] }, W = { by: 1, armF: [90, 1.7, 0, 0.85], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 1], legF: [45, 1.41, 45, 2] }, f = { by: 0, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], face: "blink", headDx: -1 }, N = { by: 1, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], face: "dizzy" }, U = { by: 2, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, V = { by: 2, armF: [45, 1.2, 0, 1.2], armB: [90, 1, 45, 1.41], legB: [116.6, 2.24, 45, 3.16], legF: [26.6, 2.24, 63.4, 2] }, J = { by: 0, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [0, 2, 63.4, 2.24], legF: [0, 1, 63.4, 2.24] }, w = { by: 5, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], hipDy: 3, legB: [0, 2, -26.6, 2.24], legF: [0, 3, -26.6, 2.24] }, Y = { by: 2, armF: [63.4, 1.9, 8.1, 2.69], armB: [90, 2, 0, 1], legB: [116.6, 2.24, 45, 3.16], legF: [26.6, 2.24, 63.4, 2] }, k = { by: 0, armF: [45, 1.2, 45, 1.7], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], lookBack: !0 }, K = { by: -1, armF: [-63.4, 1.9, -26.6, 1.7], armB: [-90, 2, 0, 2], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], face: "blink" }, M = { by: -1, armF: [-63.4, 1.9, -26.6, 1.7], armB: [-90, 2, 0, 2], legB: [135, 1.41, -45, 1], legF: [90, 1, 0, 1], face: "happy" }, z = { by: 0, armF: [-45, 2.41, -18.4, 3.8], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], face: "happy" }, P = { by: 0, armF: [-45, 2.41, -56.3, 4.34], armB: [90, 2, 0, 1], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2], face: "happy" }, Z = { by: -1, armF: [-63.4, 1.9, -26.6, 1.7], armB: [-90, 2, 0, 2], legB: [153.4, 2.24, -63.4, 1], legF: [45, 1.41, 45, 2], face: "happy" }, j = { by: 0, armF: [-45, 2.41, -18.4, 3.8], armB: [90, 2, 0, 1], legB: [18.4, 3.16, 71.6, 2], legF: [161.6, 3.16, -71.6, 1], face: "happy" }, q = { by: 1, armF: [-110, 1.9, 63, 3.06], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, v = { by: 1, armF: [-90, 1.7, 11.3, 4.34], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2], smearArm: [-110, 1.9, 63, 3.06] }, Q = { by: 0, armF: [-33.7, 3.07, 15.3, 2.69], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, X = { by: 1, armF: [33.7, 3.07, 22.6, 3.07], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2], smearArm: [33.7, 3.07, 11.3, 2.41] }, $ = { by: 1, armF: [33.7, 3.07, 11.3, 2.41], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, a1 = { by: 0, armF: [45, 2.41, 18.4, 1.9], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, e1 = { by: 1, armF: [116.6, 1.9, -180, 1.9], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, r1 = { by: 1, armF: [0, 2.55, 0, 2.55], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2], smearArm: [0, 1.7, 0, 1.7] }, l1 = { by: 0, armF: [45, 1.2, -90, 1.2], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2], smearArm: [116.6, 1.9, -180, 1.9] }, m1 = { by: 0, armF: [0, 1.7, 0, 1.7], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, B1 = { by: 0, armF: [45, 1.2, 0, 1.2], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, F1 = { by: 1, armF: [-71.6, 2.69, -45, 1.9], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, g1 = { by: 0, armF: [-59, 4.96, -40.4, 5.17], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, y1 = { by: 0, armF: [-36.9, 4.25, 10.3, 1.9], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2], smearArm: [-59, 4.96, -40.4, 5.17] }, t1 = { by: 0, armF: [-26.6, 3.8, 53.1, 1.9], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2], smearArm: [-36.9, 4.25, 10.3, 1.9] }, c1 = { by: 1, armF: [45, 1.2, 0, 1.2], armB: [90, 1, 45, 1.41], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2] }, s1 = { by: 0, armF: [-63.4, 1.9, -26.6, 1.7], armB: [-90, 2, 0, 2], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2] }, D1 = { by: -1, armF: [-63.4, 1.9, -26.6, 1.7], armB: [-90, 2, 0, 2], legB: [135, 1.41, -45, 2], legF: [90, 1, 0, 2] }, b1 = { by: 1, armF: [-130, 2.41, 26.6, 2.69], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, o1 = { by: 1, armF: [-123.7, 3.07, 0, 3.07], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, n1 = { by: 0, armF: [-45, 2.41, 45, 1.7], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, E1 = { by: 1, armF: [-90, 3.4, 18.4, 2.69], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2], smearArm: [-135, 2.41, 26.6, 2.69] }, h1 = { by: 0, armF: [26.6, 1.9, 63.4, 1.7], armB: [90, 2, 0, 1], legB: [153.4, 2.24, -63.4, 2], legF: [45, 1.41, 45, 2] }, R1 = {
|
|
2
|
+
BREATHE0: a,
|
|
3
|
+
BREATHE1: e,
|
|
4
|
+
BREATHE2: r,
|
|
5
|
+
BREATHE3: l,
|
|
6
|
+
BREATHE4: m,
|
|
7
|
+
BREATHE5: B,
|
|
8
|
+
IDLE0: F,
|
|
9
|
+
IDLE1: g,
|
|
10
|
+
STRIDE0: y,
|
|
11
|
+
STRIDE1: t,
|
|
12
|
+
STRIDE2: c,
|
|
13
|
+
STRIDE3: s,
|
|
14
|
+
STRIDE4: D,
|
|
15
|
+
STRIDE5: b,
|
|
16
|
+
JOG0: o,
|
|
17
|
+
JOG1: n,
|
|
18
|
+
JOG2: E,
|
|
19
|
+
JOG3: h,
|
|
20
|
+
JOG4: R,
|
|
21
|
+
JOG5: i,
|
|
22
|
+
JOG6: A,
|
|
23
|
+
JOG7: L,
|
|
24
|
+
ROLL0: O,
|
|
25
|
+
ROLL1: p,
|
|
26
|
+
ROLL2: T,
|
|
27
|
+
ROLL3: S,
|
|
28
|
+
ROLL4: H,
|
|
29
|
+
ROLL5: d,
|
|
30
|
+
ROLL6: _,
|
|
31
|
+
ROLL7: x,
|
|
32
|
+
ROLL8: u,
|
|
33
|
+
ROLL9: I,
|
|
34
|
+
ROLL10: C,
|
|
35
|
+
ROLL11: G,
|
|
36
|
+
DASH: W,
|
|
37
|
+
HURT: f,
|
|
38
|
+
DIZZY: N,
|
|
39
|
+
CROUCH: U,
|
|
40
|
+
KNEEL: V,
|
|
41
|
+
SIT: J,
|
|
42
|
+
SIT_GROUND: w,
|
|
43
|
+
PICK: Y,
|
|
44
|
+
LOOK_BACK: k,
|
|
45
|
+
STRETCH: K,
|
|
46
|
+
CHEER: M,
|
|
47
|
+
WAVE_A: z,
|
|
48
|
+
WAVE_B: P,
|
|
49
|
+
DANCE_A: Z,
|
|
50
|
+
DANCE_B: j,
|
|
51
|
+
SLASH_READY: q,
|
|
52
|
+
SLASH_WIND: v,
|
|
53
|
+
SLASH_SWEEP: Q,
|
|
54
|
+
SLASH_FOLLOW: X,
|
|
55
|
+
SLASH_END: $,
|
|
56
|
+
SLASH_RECOVER: a1,
|
|
57
|
+
THRUST_READY: e1,
|
|
58
|
+
THRUST_LUNGE: r1,
|
|
59
|
+
THRUST_MID: l1,
|
|
60
|
+
THRUST_END: m1,
|
|
61
|
+
THRUST_RECOVER: B1,
|
|
62
|
+
OVERHEAD_READY: F1,
|
|
63
|
+
OVERHEAD: g1,
|
|
64
|
+
OVERHEAD_MID: y1,
|
|
65
|
+
OVERHEAD_FALL: t1,
|
|
66
|
+
CAST_CHARGE: c1,
|
|
67
|
+
CAST: s1,
|
|
68
|
+
CAST_RELEASE: D1,
|
|
69
|
+
THROW_READY: b1,
|
|
70
|
+
THROW_WIND: o1,
|
|
71
|
+
THROW_RELEASE: n1,
|
|
72
|
+
THROW_MID: E1,
|
|
73
|
+
THROW_RECOVER: h1
|
|
74
|
+
};
|
|
75
|
+
export {
|
|
76
|
+
a as BREATHE0,
|
|
77
|
+
e as BREATHE1,
|
|
78
|
+
r as BREATHE2,
|
|
79
|
+
l as BREATHE3,
|
|
80
|
+
m as BREATHE4,
|
|
81
|
+
B as BREATHE5,
|
|
82
|
+
s1 as CAST,
|
|
83
|
+
c1 as CAST_CHARGE,
|
|
84
|
+
D1 as CAST_RELEASE,
|
|
85
|
+
M as CHEER,
|
|
86
|
+
U as CROUCH,
|
|
87
|
+
Z as DANCE_A,
|
|
88
|
+
j as DANCE_B,
|
|
89
|
+
W as DASH,
|
|
90
|
+
N as DIZZY,
|
|
91
|
+
f as HURT,
|
|
92
|
+
F as IDLE0,
|
|
93
|
+
g as IDLE1,
|
|
94
|
+
o as JOG0,
|
|
95
|
+
n as JOG1,
|
|
96
|
+
E as JOG2,
|
|
97
|
+
h as JOG3,
|
|
98
|
+
R as JOG4,
|
|
99
|
+
i as JOG5,
|
|
100
|
+
A as JOG6,
|
|
101
|
+
L as JOG7,
|
|
102
|
+
V as KNEEL,
|
|
103
|
+
k as LOOK_BACK,
|
|
104
|
+
g1 as OVERHEAD,
|
|
105
|
+
t1 as OVERHEAD_FALL,
|
|
106
|
+
y1 as OVERHEAD_MID,
|
|
107
|
+
F1 as OVERHEAD_READY,
|
|
108
|
+
Y as PICK,
|
|
109
|
+
O as ROLL0,
|
|
110
|
+
p as ROLL1,
|
|
111
|
+
C as ROLL10,
|
|
112
|
+
G as ROLL11,
|
|
113
|
+
T as ROLL2,
|
|
114
|
+
S as ROLL3,
|
|
115
|
+
H as ROLL4,
|
|
116
|
+
d as ROLL5,
|
|
117
|
+
_ as ROLL6,
|
|
118
|
+
x as ROLL7,
|
|
119
|
+
u as ROLL8,
|
|
120
|
+
I as ROLL9,
|
|
121
|
+
J as SIT,
|
|
122
|
+
w as SIT_GROUND,
|
|
123
|
+
$ as SLASH_END,
|
|
124
|
+
X as SLASH_FOLLOW,
|
|
125
|
+
q as SLASH_READY,
|
|
126
|
+
a1 as SLASH_RECOVER,
|
|
127
|
+
Q as SLASH_SWEEP,
|
|
128
|
+
v as SLASH_WIND,
|
|
129
|
+
K as STRETCH,
|
|
130
|
+
y as STRIDE0,
|
|
131
|
+
t as STRIDE1,
|
|
132
|
+
c as STRIDE2,
|
|
133
|
+
s as STRIDE3,
|
|
134
|
+
D as STRIDE4,
|
|
135
|
+
b as STRIDE5,
|
|
136
|
+
E1 as THROW_MID,
|
|
137
|
+
b1 as THROW_READY,
|
|
138
|
+
h1 as THROW_RECOVER,
|
|
139
|
+
n1 as THROW_RELEASE,
|
|
140
|
+
o1 as THROW_WIND,
|
|
141
|
+
m1 as THRUST_END,
|
|
142
|
+
r1 as THRUST_LUNGE,
|
|
143
|
+
l1 as THRUST_MID,
|
|
144
|
+
e1 as THRUST_READY,
|
|
145
|
+
B1 as THRUST_RECOVER,
|
|
146
|
+
z as WAVE_A,
|
|
147
|
+
P as WAVE_B,
|
|
148
|
+
R1 as default
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=poses.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poses.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const h = {
|
|
2
|
+
now: () => Date.now(),
|
|
3
|
+
setTimeout: (i, t) => setTimeout(i, t),
|
|
4
|
+
clearTimeout: (i) => clearTimeout(i)
|
|
5
|
+
};
|
|
6
|
+
class l {
|
|
7
|
+
constructor(t, s, r, e = {}) {
|
|
8
|
+
this.store = t, this.slot = s, this.snapshot = r, this.options = e, this.intervalMs = e.intervalMs ?? 3e4, this.timers = e.timers ?? h;
|
|
9
|
+
}
|
|
10
|
+
store;
|
|
11
|
+
slot;
|
|
12
|
+
snapshot;
|
|
13
|
+
options;
|
|
14
|
+
intervalMs;
|
|
15
|
+
timers;
|
|
16
|
+
lastSave = -1 / 0;
|
|
17
|
+
dirty = !1;
|
|
18
|
+
timer = null;
|
|
19
|
+
inFlight = null;
|
|
20
|
+
disposed = !1;
|
|
21
|
+
/** Something worth saving changed. */
|
|
22
|
+
request() {
|
|
23
|
+
if (this.disposed || (this.dirty = !0, this.timer !== null || this.inFlight)) return;
|
|
24
|
+
const t = this.lastSave + this.intervalMs - this.timers.now();
|
|
25
|
+
t <= 0 ? this.run() : this.timer = this.timers.setTimeout(() => {
|
|
26
|
+
this.timer = null, this.run();
|
|
27
|
+
}, t);
|
|
28
|
+
}
|
|
29
|
+
/** Saves now if anything is waiting (leaving the game, a scene change); resolves when it is written. */
|
|
30
|
+
async flush() {
|
|
31
|
+
this.timer !== null && (this.timers.clearTimeout(this.timer), this.timer = null), this.inFlight && await this.inFlight, this.dirty && await this.run();
|
|
32
|
+
}
|
|
33
|
+
/** Stops autosaving; a pending trailing save is dropped (call `flush` first to keep it). */
|
|
34
|
+
dispose() {
|
|
35
|
+
this.disposed = !0, this.timer !== null && this.timers.clearTimeout(this.timer), this.timer = null;
|
|
36
|
+
}
|
|
37
|
+
run() {
|
|
38
|
+
this.dirty = !1, this.lastSave = this.timers.now();
|
|
39
|
+
const t = (async () => {
|
|
40
|
+
try {
|
|
41
|
+
await this.store.save(this.slot, this.snapshot(), this.options.meta?.() ?? null);
|
|
42
|
+
} catch (s) {
|
|
43
|
+
this.options.onError ? this.options.onError(s) : console.error("[autosave] failed", s);
|
|
44
|
+
}
|
|
45
|
+
})();
|
|
46
|
+
return this.inFlight = t, t.then(() => {
|
|
47
|
+
this.inFlight = null, this.dirty && !this.disposed && (this.dirty = !1, this.request());
|
|
48
|
+
}), t;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
l as Autosaver
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=Autosaver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Autosaver.js","sources":["../../src/save/Autosaver.ts"],"sourcesContent":["import type { SaveStore } from './SaveStore';\n\n/** The clock and timers the autosaver uses; tests hand in fake ones. */\nexport interface AutosaveTimers {\n now(): number;\n setTimeout(fn: () => void, ms: number): unknown;\n clearTimeout(handle: unknown): void;\n}\n\nexport interface AutosaverOptions {\n /** Least time between two saves, ms (default 30,000). */\n intervalMs?: number;\n /** Small summary stored beside each save (see `SaveStore.save`). */\n meta?: () => unknown;\n /** Told when a save fails; autosaving carries on. */\n onError?: (err: unknown) => void;\n timers?: AutosaveTimers;\n}\n\nconst REAL_TIMERS: AutosaveTimers = {\n now: () => Date.now(),\n setTimeout: (fn, ms) => setTimeout(fn, ms),\n clearTimeout: (h) => clearTimeout(h as ReturnType<typeof setTimeout>),\n};\n\n/**\n * Saves a slot when the game says something changed, but never more often than `intervalMs`: a burst of changes\n * (every pickup in a fight) becomes one save now and one trailing save at the end of the interval with the newest\n * state. `snapshot` is read when the save happens, not when it was asked for, so the trailing save is never stale.\n */\nexport class Autosaver {\n private readonly intervalMs: number;\n private readonly timers: AutosaveTimers;\n private lastSave = -Infinity;\n private dirty = false;\n private timer: unknown = null;\n private inFlight: Promise<void> | null = null;\n private disposed = false;\n\n constructor(\n private readonly store: SaveStore,\n private readonly slot: string,\n private readonly snapshot: () => unknown,\n private readonly options: AutosaverOptions = {},\n ) {\n this.intervalMs = options.intervalMs ?? 30_000;\n this.timers = options.timers ?? REAL_TIMERS;\n }\n\n /** Something worth saving changed. */\n request(): void {\n if (this.disposed) return;\n this.dirty = true;\n if (this.timer !== null || this.inFlight) return;\n const wait = this.lastSave + this.intervalMs - this.timers.now();\n if (wait <= 0) void this.run();\n else this.timer = this.timers.setTimeout(() => {\n this.timer = null;\n void this.run();\n }, wait);\n }\n\n /** Saves now if anything is waiting (leaving the game, a scene change); resolves when it is written. */\n async flush(): Promise<void> {\n if (this.timer !== null) {\n this.timers.clearTimeout(this.timer);\n this.timer = null;\n }\n if (this.inFlight) await this.inFlight;\n if (this.dirty) await this.run();\n }\n\n /** Stops autosaving; a pending trailing save is dropped (call `flush` first to keep it). */\n dispose(): void {\n this.disposed = true;\n if (this.timer !== null) this.timers.clearTimeout(this.timer);\n this.timer = null;\n }\n\n private run(): Promise<void> {\n this.dirty = false;\n this.lastSave = this.timers.now();\n const job = (async () => {\n try {\n await this.store.save(this.slot, this.snapshot(), this.options.meta?.() ?? null);\n } catch (err) {\n if (this.options.onError) this.options.onError(err);\n else console.error('[autosave] failed', err);\n }\n })();\n this.inFlight = job;\n void job.then(() => {\n this.inFlight = null;\n // changes made while the save was being written wait for the next interval\n if (this.dirty && !this.disposed) {\n this.dirty = false;\n this.request();\n }\n });\n return job;\n }\n}\n"],"names":["REAL_TIMERS","fn","ms","h","Autosaver","store","slot","snapshot","options","wait","job","err"],"mappings":"AAmBA,MAAMA,IAA8B;AAAA,EAClC,KAAK,MAAM,KAAK,IAAA;AAAA,EAChB,YAAY,CAACC,GAAIC,MAAO,WAAWD,GAAIC,CAAE;AAAA,EACzC,cAAc,CAACC,MAAM,aAAaA,CAAkC;AACtE;AAOO,MAAMC,EAAU;AAAA,EASrB,YACmBC,GACAC,GACAC,GACAC,IAA4B,CAAA,GAC7C;AAJiB,SAAA,QAAAH,GACA,KAAA,OAAAC,GACA,KAAA,WAAAC,GACA,KAAA,UAAAC,GAEjB,KAAK,aAAaA,EAAQ,cAAc,KACxC,KAAK,SAASA,EAAQ,UAAUR;AAAA,EAClC;AAAA,EAPmB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAZF;AAAA,EACA;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAiB;AAAA,EACjB,WAAiC;AAAA,EACjC,WAAW;AAAA;AAAA,EAanB,UAAgB;AAGd,QAFI,KAAK,aACT,KAAK,QAAQ,IACT,KAAK,UAAU,QAAQ,KAAK,UAAU;AAC1C,UAAMS,IAAO,KAAK,WAAW,KAAK,aAAa,KAAK,OAAO,IAAA;AAC3D,IAAIA,KAAQ,IAAQ,KAAK,IAAA,IACpB,KAAK,QAAQ,KAAK,OAAO,WAAW,MAAM;AAC7C,WAAK,QAAQ,MACR,KAAK,IAAA;AAAA,IACZ,GAAGA,CAAI;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,QAAuB;AAC3B,IAAI,KAAK,UAAU,SACjB,KAAK,OAAO,aAAa,KAAK,KAAK,GACnC,KAAK,QAAQ,OAEX,KAAK,YAAU,MAAM,KAAK,UAC1B,KAAK,SAAO,MAAM,KAAK,IAAA;AAAA,EAC7B;AAAA;AAAA,EAGA,UAAgB;AACd,SAAK,WAAW,IACZ,KAAK,UAAU,aAAW,OAAO,aAAa,KAAK,KAAK,GAC5D,KAAK,QAAQ;AAAA,EACf;AAAA,EAEQ,MAAqB;AAC3B,SAAK,QAAQ,IACb,KAAK,WAAW,KAAK,OAAO,IAAA;AAC5B,UAAMC,KAAO,YAAY;AACvB,UAAI;AACF,cAAM,KAAK,MAAM,KAAK,KAAK,MAAM,KAAK,SAAA,GAAY,KAAK,QAAQ,OAAA,KAAY,IAAI;AAAA,MACjF,SAASC,GAAK;AACZ,QAAI,KAAK,QAAQ,UAAS,KAAK,QAAQ,QAAQA,CAAG,IAC7C,QAAQ,MAAM,qBAAqBA,CAAG;AAAA,MAC7C;AAAA,IACF,GAAA;AACA,gBAAK,WAAWD,GACXA,EAAI,KAAK,MAAM;AAClB,WAAK,WAAW,MAEZ,KAAK,SAAS,CAAC,KAAK,aACtB,KAAK,QAAQ,IACb,KAAK,QAAA;AAAA,IAET,CAAC,GACMA;AAAA,EACT;AACF;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
class r {
|
|
2
|
+
entries = /* @__PURE__ */ new Map();
|
|
3
|
+
async read(e) {
|
|
4
|
+
return this.entries.get(e) ?? null;
|
|
5
|
+
}
|
|
6
|
+
async write(e, s) {
|
|
7
|
+
this.entries.set(e, s);
|
|
8
|
+
}
|
|
9
|
+
async remove(e) {
|
|
10
|
+
this.entries.delete(e);
|
|
11
|
+
}
|
|
12
|
+
async keys(e) {
|
|
13
|
+
return [...this.entries.keys()].filter((s) => s.startsWith(e));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
r as MemoryBackend
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=MemoryBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryBackend.js","sources":["../../src/save/MemoryBackend.ts"],"sourcesContent":["import type { SaveBackend } from './SaveBackend';\n\n/** Slots kept in a map for the life of the page: for tests, tools and a browser that refuses storage. */\nexport class MemoryBackend implements SaveBackend {\n readonly entries = new Map<string, string>();\n\n async read(key: string): Promise<string | null> {\n return this.entries.get(key) ?? null;\n }\n\n async write(key: string, value: string): Promise<void> {\n this.entries.set(key, value);\n }\n\n async remove(key: string): Promise<void> {\n this.entries.delete(key);\n }\n\n async keys(prefix: string): Promise<string[]> {\n return [...this.entries.keys()].filter((k) => k.startsWith(prefix));\n }\n}\n"],"names":["MemoryBackend","key","value","prefix","k"],"mappings":"AAGO,MAAMA,EAAqC;AAAA,EACvC,8BAAc,IAAA;AAAA,EAEvB,MAAM,KAAKC,GAAqC;AAC9C,WAAO,KAAK,QAAQ,IAAIA,CAAG,KAAK;AAAA,EAClC;AAAA,EAEA,MAAM,MAAMA,GAAaC,GAA8B;AACrD,SAAK,QAAQ,IAAID,GAAKC,CAAK;AAAA,EAC7B;AAAA,EAEA,MAAM,OAAOD,GAA4B;AACvC,SAAK,QAAQ,OAAOA,CAAG;AAAA,EACzB;AAAA,EAEA,MAAM,KAAKE,GAAmC;AAC5C,WAAO,CAAC,GAAG,KAAK,QAAQ,KAAA,CAAM,EAAE,OAAO,CAACC,MAAMA,EAAE,WAAWD,CAAM,CAAC;AAAA,EACpE;AACF;"}
|