1681-engine 0.0.0-stage → 0.5.9
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 +357 -0
- package/LICENSE +21 -0
- package/README.md +164 -2
- package/dist/1681-engine.js +471 -0
- package/dist/ambient/ColorGrade.js +40 -0
- package/dist/ambient/DayClock.js +56 -0
- package/dist/ambient/WeatherLayer.js +90 -0
- package/dist/ambient/grade.js +12 -0
- package/dist/ambient/weather.js +51 -0
- package/dist/anim/AnimStateMachine.js +163 -0
- package/dist/anim/Animator.js +66 -0
- package/dist/anim/animStateCompile.js +112 -0
- package/dist/anim/animStateSystem.js +16 -0
- package/dist/anim/animationSystem.js +14 -0
- package/dist/anim/asepriteSlices.js +21 -0
- package/dist/anim/asepriteTags.js +34 -0
- package/dist/anim/parseAseprite.js +82 -0
- package/dist/assets/AssetLoader.js +202 -0
- package/dist/assets/loadAseprite.js +49 -0
- package/dist/assets/takeCleanerWorker-DTcI_Jqr.js +30 -0
- package/dist/assets/textureAtlas.js +58 -0
- package/dist/audio/Footsteps.js +25 -0
- package/dist/audio/MusicPlayer.js +77 -0
- package/dist/audio/SoundEngine.js +125 -0
- package/dist/audio/cleanTake.js +29 -0
- package/dist/audio/music/ElementVoice.js +34 -0
- package/dist/audio/music/GraphVoice.js +38 -0
- package/dist/audio/music/MusicChannel.js +57 -0
- package/dist/audio/music/musicVoice.js +12 -0
- package/dist/audio/sampleBank.js +81 -0
- package/dist/audio/soundTable.js +8 -0
- package/dist/audio/synth.js +35 -0
- package/dist/core/BitmapLabel.js +48 -0
- package/dist/core/Camera.js +149 -0
- package/dist/core/Clock.js +40 -0
- package/dist/core/Graphics.js +68 -0
- package/dist/core/Group.js +28 -0
- package/dist/core/Image.js +50 -0
- package/dist/core/ObjectFactory.js +54 -0
- package/dist/core/Pointer.js +80 -0
- package/dist/core/Rectangle.js +50 -0
- package/dist/core/Stage.js +85 -0
- package/dist/core/Text.js +21 -0
- package/dist/core/TextureRegistry.js +141 -0
- package/dist/core/Timeline.js +210 -0
- package/dist/core/TimelineBuilder.js +72 -0
- package/dist/core/TimelineChild.js +83 -0
- package/dist/core/Tweener.js +135 -0
- package/dist/core/atlas.js +37 -0
- package/dist/core/atlasPlan.js +21 -0
- package/dist/core/blendLayer.js +11 -0
- package/dist/core/eases.js +20 -0
- package/dist/core/gameObject.js +117 -0
- package/dist/core/pixelZoom.js +43 -0
- package/dist/core/pixiPatches.js +17 -0
- package/dist/core/runDue.js +28 -0
- package/dist/core/silhouette.js +49 -0
- package/dist/core/timelinePlace.js +23 -0
- package/dist/core/tweenProps.js +11 -0
- package/dist/debug/DebugOverlay.js +93 -0
- package/dist/debug/DrawCallCounter.js +44 -0
- package/dist/debug/ErrorLog.js +21 -0
- package/dist/debug/FrameStats.js +41 -0
- package/dist/debug/inspectWorld.js +28 -0
- package/dist/diagnostics/ErrorDeduper.js +26 -0
- package/dist/diagnostics/FrameSampler.js +41 -0
- package/dist/diagnostics/bootWatch.js +20 -0
- package/dist/diagnostics/captureErrors.js +26 -0
- package/dist/diagnostics/contextLoss.js +24 -0
- package/dist/diagnostics/frameStats.js +30 -0
- package/dist/diagnostics/gpuInfo.js +21 -0
- package/dist/diagnostics/renderGuard.js +23 -0
- package/dist/ecs/SparseSet.js +54 -0
- package/dist/ecs/World.js +306 -0
- package/dist/ecs/fields.js +25 -0
- package/dist/engine/Engine.js +106 -0
- package/dist/engine/FixedLoop.js +36 -0
- package/dist/engine/HiddenPause.js +27 -0
- package/dist/engine/Scene.js +78 -0
- package/dist/engine/SceneManager.js +72 -0
- package/dist/events/EventBus.js +41 -0
- package/dist/fx/Afterimages.js +82 -0
- package/dist/fx/FloatingText.js +71 -0
- package/dist/fx/hitStop.js +27 -0
- package/dist/fx/viewCull.js +9 -0
- package/dist/i18n/Translator.js +71 -0
- package/dist/i18n/extractStrings.js +57 -0
- package/dist/i18n/formatMessage.js +18 -0
- package/dist/input/Actions.js +139 -0
- package/dist/input/AimGesture.js +74 -0
- package/dist/input/Keyboard.js +53 -0
- package/dist/input/Keymap.js +170 -0
- package/dist/input/TargetLock.js +72 -0
- package/dist/input/aimAxis.js +7 -0
- package/dist/input/keyChord.js +28 -0
- package/dist/input/longPress.js +31 -0
- package/dist/input/rumble.js +42 -0
- package/dist/input/stickAxis.js +22 -0
- package/dist/input/touchDetect.js +6 -0
- package/dist/light/LightLayer.js +83 -0
- package/dist/nav/MinHeap.js +38 -0
- package/dist/nav/findPath.js +77 -0
- package/dist/nav/navGrid.js +35 -0
- package/dist/nav/nearestOpen.js +18 -0
- package/dist/nav/straightenPath.js +50 -0
- package/dist/net/Connection.js +107 -0
- package/dist/net/InterpolationBuffer.js +56 -0
- package/dist/net/PredictedMover.js +60 -0
- package/dist/net/Room.js +91 -0
- package/dist/net/RoomHost.js +100 -0
- package/dist/net/cadence.js +21 -0
- package/dist/net/constants.js +10 -0
- package/dist/net/lobby/LobbyClient.js +123 -0
- package/dist/net/lobby/LobbyHost.js +365 -0
- package/dist/net/lobby/LobbyRooms.js +65 -0
- package/dist/net/lobby/Matchmaker.js +105 -0
- package/dist/net/movement.js +84 -0
- package/dist/net/protocol.js +10 -0
- package/dist/net/reconnect.js +10 -0
- package/dist/net/serverClock.js +21 -0
- package/dist/net/snapshotCodec.js +91 -0
- package/dist/parallax/Parallax.js +31 -0
- package/dist/parallax/ParallaxLayer.js +69 -0
- package/dist/parallax/parallaxMath.js +26 -0
- package/dist/particles/Emitter.js +107 -0
- package/dist/particles/ParticleBudget.js +31 -0
- package/dist/particles/ParticleSim.js +59 -0
- package/dist/particles/particleCurves.js +47 -0
- package/dist/particles/particleSampling.js +29 -0
- package/dist/physics/Body.js +201 -0
- package/dist/physics/BroadPhase.js +55 -0
- package/dist/physics/Contact.js +75 -0
- package/dist/physics/ContactSolver.js +69 -0
- package/dist/physics/PhysicsWorld.js +220 -0
- package/dist/physics/SpatialHash.js +38 -0
- package/dist/physics/collide.js +75 -0
- package/dist/physics/collidePolygon.js +93 -0
- package/dist/physics/contactReport.js +13 -0
- package/dist/physics/drawColliders.js +30 -0
- package/dist/physics/physicsSystem.js +7 -0
- package/dist/physics/polygon.js +79 -0
- package/dist/physics/raycast.js +61 -0
- package/dist/physics/syncToBody.js +18 -0
- package/dist/physics/tileBodies.js +58 -0
- package/dist/physics/types.js +7 -0
- package/dist/pixel/Darkness.js +169 -0
- package/dist/pixel/DitherVignette.js +56 -0
- package/dist/pixel/Evaporation.js +84 -0
- package/dist/pixel/NightShade.js +33 -0
- package/dist/pixel/PixelLayer.js +210 -0
- package/dist/pixel/PixelMarks.js +99 -0
- package/dist/pixel/SwayProp.js +74 -0
- package/dist/pixel/aimPixels.js +67 -0
- package/dist/pixel/lights.js +43 -0
- package/dist/pixel/nineSlice.js +61 -0
- package/dist/pixel/paintLayer.js +35 -0
- package/dist/pixel/palette.js +56 -0
- package/dist/pixel/pixel.js +277 -0
- package/dist/pixel/pixelPaint.js +197 -0
- package/dist/pixel/pixelParticles.js +35 -0
- package/dist/pixel/pixelTone.js +163 -0
- package/dist/pixel/propKit.js +40 -0
- package/dist/pixel/ramp.js +101 -0
- package/dist/pixel/selout.js +34 -0
- package/dist/pixel/spritePixels.js +58 -0
- package/dist/pixel/swayRig.js +86 -0
- package/dist/pixel/vignetteMask.js +23 -0
- package/dist/pixel/weatherArt.js +60 -0
- package/dist/pixel.js +96 -0
- package/dist/platform/appResume.js +18 -0
- package/dist/platform/fullscreen.js +52 -0
- package/dist/platform/orientation.js +26 -0
- package/dist/platform/pointerLock.js +37 -0
- package/dist/platform/reducedMotion.js +23 -0
- package/dist/platform/timeoutSignal.js +14 -0
- package/dist/platform/touch.js +32 -0
- package/dist/postfx/BloomFilter.js +64 -0
- package/dist/postfx/ChromaticAberrationFilter.js +24 -0
- package/dist/postfx/ColorAdjustFilter.js +75 -0
- package/dist/postfx/CrtFilter.js +41 -0
- package/dist/postfx/PixelateFilter.js +26 -0
- package/dist/postfx/PostFx.js +122 -0
- package/dist/postfx/ShockwaveFilter.js +48 -0
- package/dist/postfx/VignetteFilter.js +36 -0
- package/dist/postfx/fxAnimator.js +37 -0
- package/dist/postfx/fxShader.js +127 -0
- package/dist/postfx.js +25 -0
- package/dist/react/ChoiceDialog.js +50 -0
- package/dist/react/ConfirmDialog.js +52 -0
- package/dist/react/Glyph.js +62 -0
- package/dist/react/Modal.js +37 -0
- package/dist/react/Panel.js +23 -0
- package/dist/react/PixelImage.js +23 -0
- package/dist/react/Select.js +98 -0
- package/dist/react/Slider.js +61 -0
- package/dist/react/SplitPane.js +23 -0
- package/dist/react/TabStrip.js +31 -0
- package/dist/react/TitleTips.js +41 -0
- package/dist/react/Tooltip.js +27 -0
- package/dist/react/UiProvider.js +49 -0
- package/dist/react/baseCss.js +221 -0
- package/dist/react/choiceStore.js +22 -0
- package/dist/react/classNames.js +18 -0
- package/dist/react/confirmStore.js +29 -0
- package/dist/react/labels.js +17 -0
- package/dist/react/placement.js +48 -0
- package/dist/react/useFillSheet.js +22 -0
- package/dist/react/useFitToViewport.js +28 -0
- package/dist/react/usePicked.js +12 -0
- package/dist/react/useStore.js +8 -0
- package/dist/react/useViewport.js +16 -0
- package/dist/react.js +77 -0
- package/dist/rig/PosePlayer.js +91 -0
- package/dist/rig/RigView.js +124 -0
- package/dist/rig/Skeleton.js +30 -0
- package/dist/rig/humanoid.js +5 -0
- package/dist/rig/humanoid.json.js +29 -0
- package/dist/rig/humanoidPoses.js +29 -0
- package/dist/rig/poseMath.js +53 -0
- package/dist/rig/poses.json.js +149 -0
- package/dist/save/Autosaver.js +53 -0
- package/dist/save/MemoryBackend.js +18 -0
- package/dist/save/SaveStore.js +102 -0
- package/dist/save/WebStorageBackend.js +26 -0
- package/dist/save/checksum.js +9 -0
- package/dist/save/migrateSave.js +26 -0
- package/dist/settings.js +26 -0
- package/dist/tilemap/TilemapView.js +68 -0
- package/dist/tilemap/collision.js +24 -0
- package/dist/tilemap/tiled.js +137 -0
- package/dist/transitions/CrossfadeTransition.js +23 -0
- package/dist/transitions/DitherWipeTransition.js +69 -0
- package/dist/transitions/FadeTransition.js +33 -0
- package/dist/transitions/Letterbox.js +41 -0
- package/dist/transitions/ditherMask.js +14 -0
- package/dist/transitions/transitionTo.js +27 -0
- package/dist/transitions/tweenDone.js +14 -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 +140 -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/assets/textureAtlas.d.ts +35 -0
- package/dist/types/assets/textureAtlas.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 +47 -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 +23 -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 +45 -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 +90 -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/blendLayer.d.ts +23 -0
- package/dist/types/core/blendLayer.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/pixelZoom.d.ts +45 -0
- package/dist/types/core/pixelZoom.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/runDue.d.ts +15 -0
- package/dist/types/core/runDue.d.ts.map +1 -0
- package/dist/types/core/silhouette.d.ts +16 -0
- package/dist/types/core/silhouette.d.ts.map +1 -0
- package/dist/types/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 +96 -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/HiddenPause.d.ts +22 -0
- package/dist/types/engine/HiddenPause.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/Afterimages.d.ts +62 -0
- package/dist/types/fx/Afterimages.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 +164 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/input/Actions.d.ts +100 -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/rumble.d.ts +41 -0
- package/dist/types/input/rumble.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 +88 -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 +33 -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/reconnect.d.ts +14 -0
- package/dist/types/net/reconnect.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 +90 -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/PixelMarks.d.ts +68 -0
- package/dist/types/pixel/PixelMarks.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/aimPixels.d.ts +23 -0
- package/dist/types/pixel/aimPixels.d.ts.map +1 -0
- package/dist/types/pixel/index.d.ts +33 -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 +44 -0
- package/dist/types/pixel/pixelPaint.d.ts.map +1 -0
- package/dist/types/pixel/pixelParticles.d.ts +21 -0
- package/dist/types/pixel/pixelParticles.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/appResume.d.ts +25 -0
- package/dist/types/platform/appResume.d.ts.map +1 -0
- package/dist/types/platform/fullscreen.d.ts +37 -0
- package/dist/types/platform/fullscreen.d.ts.map +1 -0
- package/dist/types/platform/orientation.d.ts +19 -0
- package/dist/types/platform/orientation.d.ts.map +1 -0
- package/dist/types/platform/pointerLock.d.ts +26 -0
- package/dist/types/platform/pointerLock.d.ts.map +1 -0
- package/dist/types/platform/reducedMotion.d.ts +20 -0
- package/dist/types/platform/reducedMotion.d.ts.map +1 -0
- package/dist/types/platform/timeoutSignal.d.ts +6 -0
- package/dist/types/platform/timeoutSignal.d.ts.map +1 -0
- package/dist/types/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 +42 -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/types/ui/rich/RichText.d.ts +48 -0
- package/dist/types/ui/rich/RichText.d.ts.map +1 -0
- package/dist/types/ui/rich/richFonts.d.ts +70 -0
- package/dist/types/ui/rich/richFonts.d.ts.map +1 -0
- package/dist/types/ui/rich/richLayout.d.ts +76 -0
- package/dist/types/ui/rich/richLayout.d.ts.map +1 -0
- package/dist/types/ui/rich/richMarkup.d.ts +48 -0
- package/dist/types/ui/rich/richMarkup.d.ts.map +1 -0
- package/dist/ui/Bar.js +53 -0
- package/dist/ui/Button.js +57 -0
- package/dist/ui/Dialog.js +55 -0
- package/dist/ui/FocusManager.js +96 -0
- package/dist/ui/Label.js +35 -0
- package/dist/ui/List.js +44 -0
- package/dist/ui/Panel.js +37 -0
- package/dist/ui/ScrollView.js +95 -0
- package/dist/ui/Slider.js +54 -0
- package/dist/ui/Stack.js +27 -0
- package/dist/ui/Toggle.js +36 -0
- package/dist/ui/UiHost.js +8 -0
- package/dist/ui/UiPointerGate.js +24 -0
- package/dist/ui/UiRoot.js +92 -0
- package/dist/ui/Widget.js +89 -0
- package/dist/ui/dom/DomOverlay.js +58 -0
- package/dist/ui/dom/DomWorldAnchors.js +58 -0
- package/dist/ui/dom/InputShield.js +26 -0
- package/dist/ui/dom/createStore.js +41 -0
- package/dist/ui/dom/shieldDecision.js +35 -0
- package/dist/ui/dom/worldToScreen.js +10 -0
- package/dist/ui/layout/anchor.js +19 -0
- package/dist/ui/layout/barDrain.js +24 -0
- package/dist/ui/layout/fitToViewport.js +16 -0
- package/dist/ui/layout/focusNav.js +41 -0
- package/dist/ui/layout/geometry.js +20 -0
- package/dist/ui/layout/listWidth.js +9 -0
- package/dist/ui/layout/placeTooltip.js +27 -0
- package/dist/ui/layout/scroll.js +23 -0
- package/dist/ui/layout/slider.js +19 -0
- package/dist/ui/layout/stack.js +26 -0
- package/dist/ui/layout/wrapRow.js +12 -0
- package/dist/ui/rich/RichText.js +87 -0
- package/dist/ui/rich/richFonts.js +105 -0
- package/dist/ui/rich/richLayout.js +132 -0
- package/dist/ui/rich/richMarkup.js +67 -0
- package/dist/ui.js +95 -0
- package/package.json +112 -4
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { EventBus as i } from "../events/EventBus.js";
|
|
2
|
+
import { onAppResume as o } from "../platform/appResume.js";
|
|
3
|
+
import { noteServerTime as r } from "./serverClock.js";
|
|
4
|
+
import { decodeSnapshotFrame as n } from "./snapshotCodec.js";
|
|
5
|
+
import { shouldReconnect as h, reconnectDelay as c } from "./reconnect.js";
|
|
6
|
+
const l = 4408;
|
|
7
|
+
class d {
|
|
8
|
+
constructor(e, t = {}) {
|
|
9
|
+
this.url = e, this.options = t;
|
|
10
|
+
}
|
|
11
|
+
url;
|
|
12
|
+
options;
|
|
13
|
+
events = new i();
|
|
14
|
+
/** The last measured round trip, ms. */
|
|
15
|
+
rtt = 0;
|
|
16
|
+
socket = null;
|
|
17
|
+
batch = null;
|
|
18
|
+
closedByUs = !1;
|
|
19
|
+
attempt = 0;
|
|
20
|
+
pingTimer = null;
|
|
21
|
+
retryTimer = null;
|
|
22
|
+
probeTimer = null;
|
|
23
|
+
stopResume = null;
|
|
24
|
+
get open() {
|
|
25
|
+
return this.socket?.readyState === 1;
|
|
26
|
+
}
|
|
27
|
+
connect() {
|
|
28
|
+
this.closedByUs = !1;
|
|
29
|
+
const e = this.options.WebSocket ?? globalThis.WebSocket;
|
|
30
|
+
if (!e) throw new Error("Connection: no WebSocket in this environment");
|
|
31
|
+
const t = new e(this.url);
|
|
32
|
+
return t.binaryType = "arraybuffer", this.socket = t, t.onopen = () => {
|
|
33
|
+
this.attempt = 0, this.send({ t: "hello", data: this.options.hello?.() }), this.ping(), this.pingTimer = setInterval(() => this.ping(), this.options.pingMs ?? 1e3), this.events.emit("open", void 0);
|
|
34
|
+
}, t.onmessage = (s) => this.receive(s.data), t.onclose = (s) => {
|
|
35
|
+
(this.socket === t || this.socket === null) && this.closed(s.code, s.reason);
|
|
36
|
+
}, (this.options.resumeProbeMs ?? 0) > 0 && !this.stopResume && (this.stopResume = (this.options.onResume ?? o)(() => this.probe())), this;
|
|
37
|
+
}
|
|
38
|
+
/** Sends a message now (dropped while closed: input is resent by the prediction's own state, not by the socket). */
|
|
39
|
+
send(e) {
|
|
40
|
+
this.socket?.readyState === 1 && this.socket.send(JSON.stringify(e));
|
|
41
|
+
}
|
|
42
|
+
/** Adds one input step to this frame's batch; `flush` sends it. Steps must come in sequence order. */
|
|
43
|
+
queueInput(e, t) {
|
|
44
|
+
this.batch || (this.batch = { seq: e, steps: [] }), this.batch.steps.push([t[0], t[1], t[2]]);
|
|
45
|
+
}
|
|
46
|
+
/** Sends this frame's input steps as one message. Call once a frame. */
|
|
47
|
+
flush() {
|
|
48
|
+
this.batch && (this.send({ t: "input", seq: this.batch.seq, steps: this.batch.steps }), this.batch = null);
|
|
49
|
+
}
|
|
50
|
+
close() {
|
|
51
|
+
this.closedByUs = !0, this.retryTimer && clearTimeout(this.retryTimer), this.pingTimer && clearInterval(this.pingTimer), this.clearProbe(), this.stopResume?.(), this.stopResume = null, this.socket?.close(), this.socket = null;
|
|
52
|
+
}
|
|
53
|
+
/** The socket is gone (closed, or given up on): report it and reconnect unless told not to. */
|
|
54
|
+
closed(e, t) {
|
|
55
|
+
this.pingTimer && clearInterval(this.pingTimer), this.pingTimer = null, this.clearProbe(), this.socket = null;
|
|
56
|
+
const s = h(e, { closedByUs: this.closedByUs, reconnect: this.options.reconnect, fatalCloseCodes: this.options.fatalCloseCodes });
|
|
57
|
+
this.events.emit("close", { code: e, reason: t, willRetry: s }), s && (this.retryTimer = setTimeout(() => this.connect(), c(this.attempt++, this.options.maxBackoffMs)));
|
|
58
|
+
}
|
|
59
|
+
/** Back from the background: a pong within `resumeProbeMs` proves the socket alive, none drops it. */
|
|
60
|
+
probe() {
|
|
61
|
+
const e = this.socket;
|
|
62
|
+
!e || e.readyState !== 1 || this.probeTimer || (this.probeTimer = setTimeout(() => {
|
|
63
|
+
if (this.probeTimer = null, this.socket === e) {
|
|
64
|
+
e.onopen = e.onmessage = e.onclose = null;
|
|
65
|
+
try {
|
|
66
|
+
e.close();
|
|
67
|
+
} catch {
|
|
68
|
+
}
|
|
69
|
+
this.closed(l, "no answer after resume");
|
|
70
|
+
}
|
|
71
|
+
}, this.options.resumeProbeMs), this.ping());
|
|
72
|
+
}
|
|
73
|
+
clearProbe() {
|
|
74
|
+
this.probeTimer && clearTimeout(this.probeTimer), this.probeTimer = null;
|
|
75
|
+
}
|
|
76
|
+
ping() {
|
|
77
|
+
this.send({ t: "ping", c: Date.now() });
|
|
78
|
+
}
|
|
79
|
+
receive(e) {
|
|
80
|
+
let t;
|
|
81
|
+
try {
|
|
82
|
+
t = typeof e == "string" ? JSON.parse(e) : n(e);
|
|
83
|
+
} catch (s) {
|
|
84
|
+
console.error("[net] could not read a message", s);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
switch (t.t) {
|
|
88
|
+
case "pong": {
|
|
89
|
+
const s = t;
|
|
90
|
+
this.clearProbe(), this.rtt = Date.now() - s.c, r(s.st, this.rtt);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
case "welcome":
|
|
94
|
+
this.events.emit("welcome", t);
|
|
95
|
+
return;
|
|
96
|
+
case "snap":
|
|
97
|
+
this.events.emit("snapshot", t);
|
|
98
|
+
return;
|
|
99
|
+
default:
|
|
100
|
+
this.events.emit("message", t);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export {
|
|
105
|
+
l as CLOSE_NO_ANSWER,
|
|
106
|
+
d as Connection
|
|
107
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
class x {
|
|
2
|
+
constructor(s = 100, a = 120, t = 30) {
|
|
3
|
+
this.delayMs = s, this.maxExtrapolateMs = a, this.keep = t;
|
|
4
|
+
}
|
|
5
|
+
delayMs;
|
|
6
|
+
maxExtrapolateMs;
|
|
7
|
+
keep;
|
|
8
|
+
samples = /* @__PURE__ */ new Map();
|
|
9
|
+
/** Records every body of a snapshot taken at `time`. */
|
|
10
|
+
push(s, a) {
|
|
11
|
+
for (const [t, n, o, h, m, p, c] of a) {
|
|
12
|
+
let i = this.samples.get(t);
|
|
13
|
+
i || (i = [], this.samples.set(t, i));
|
|
14
|
+
const l = i[i.length - 1];
|
|
15
|
+
l && s <= l.time || (i.push({ time: s, x: n, y: o, aim: h, anim: m, hp: p, flags: c }), i.length > this.keep && i.splice(0, i.length - this.keep));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** Forgets a body (it left view). */
|
|
19
|
+
remove(s) {
|
|
20
|
+
this.samples.delete(s);
|
|
21
|
+
}
|
|
22
|
+
has(s) {
|
|
23
|
+
return this.samples.has(s);
|
|
24
|
+
}
|
|
25
|
+
ids() {
|
|
26
|
+
return this.samples.keys();
|
|
27
|
+
}
|
|
28
|
+
/** Where body `id` should be drawn at server time `now`, or null if nothing is known of it. */
|
|
29
|
+
sample(s, a) {
|
|
30
|
+
const t = this.samples.get(s);
|
|
31
|
+
if (!t || t.length === 0) return null;
|
|
32
|
+
const n = a - this.delayMs, o = t[0];
|
|
33
|
+
if (n <= o.time || t.length === 1) return g(o);
|
|
34
|
+
for (let i = t.length - 1; i > 0; i--) {
|
|
35
|
+
const l = t[i - 1], r = t[i];
|
|
36
|
+
if (n >= l.time && n <= r.time) {
|
|
37
|
+
const u = r.time === l.time ? 1 : (n - l.time) / (r.time - l.time);
|
|
38
|
+
return f(l, r, u);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const h = t[t.length - 2], m = t[t.length - 1], p = Math.min(n - m.time, this.maxExtrapolateMs), c = m.time === h.time ? 1 : 1 + p / (m.time - h.time);
|
|
42
|
+
return f(h, m, c);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function g(e) {
|
|
46
|
+
return { x: e.x, y: e.y, aim: e.aim, anim: e.anim, hp: e.hp, flags: e.flags };
|
|
47
|
+
}
|
|
48
|
+
function f(e, s, a) {
|
|
49
|
+
let t = s.aim - e.aim;
|
|
50
|
+
t > Math.PI && (t -= Math.PI * 2), t < -Math.PI && (t += Math.PI * 2);
|
|
51
|
+
const n = a < 1 ? e : s;
|
|
52
|
+
return { x: e.x + (s.x - e.x) * a, y: e.y + (s.y - e.y) * a, aim: e.aim + t * a, anim: n.anim, hp: n.hp, flags: n.flags };
|
|
53
|
+
}
|
|
54
|
+
export {
|
|
55
|
+
x as InterpolationBuffer
|
|
56
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createMover as c, stepMover as n } from "./movement.js";
|
|
2
|
+
import { moverFromWire as m } from "./protocol.js";
|
|
3
|
+
class g {
|
|
4
|
+
constructor(t, s, i, o) {
|
|
5
|
+
this.params = i, this.grid = o, this.mover = c(t, s);
|
|
6
|
+
}
|
|
7
|
+
params;
|
|
8
|
+
grid;
|
|
9
|
+
mover;
|
|
10
|
+
pending = [];
|
|
11
|
+
nextSeq = 0;
|
|
12
|
+
/** The jump the last reconciliation made, still being eased out (world px). */
|
|
13
|
+
offsetX = 0;
|
|
14
|
+
offsetY = 0;
|
|
15
|
+
/** How big the last correction was (0 when the prediction was right). */
|
|
16
|
+
correction = 0;
|
|
17
|
+
/** Share of a visual correction left after each 60th of a second (default 0.8). */
|
|
18
|
+
smoothing = 0.8;
|
|
19
|
+
/** Applies one input step now and keeps it for replay; returns its sequence number (send it with the step). */
|
|
20
|
+
step(t) {
|
|
21
|
+
const s = this.nextSeq++;
|
|
22
|
+
return this.pending.push({ seq: s, step: [t[0], t[1], t[2]] }), n(this.mover, t, this.params, this.grid), s;
|
|
23
|
+
}
|
|
24
|
+
/** Steps sent but not yet acknowledged. */
|
|
25
|
+
get unacknowledged() {
|
|
26
|
+
return this.pending.length;
|
|
27
|
+
}
|
|
28
|
+
/** The server's word: the body as of step `ack`. Rewinds there and replays the rest. */
|
|
29
|
+
reconcile(t, s) {
|
|
30
|
+
const i = this.mover.x, o = this.mover.y;
|
|
31
|
+
let e = 0;
|
|
32
|
+
for (; e < this.pending.length && this.pending[e].seq <= t; ) e++;
|
|
33
|
+
e && (this.pending = this.pending.slice(e)), m(s, this.mover);
|
|
34
|
+
for (const f of this.pending) n(this.mover, f.step, this.params, this.grid);
|
|
35
|
+
const r = i - this.mover.x, h = o - this.mover.y;
|
|
36
|
+
this.correction = Math.hypot(r, h), this.correction > 0.01 && this.correction < 64 ? (this.offsetX += r, this.offsetY += h) : this.correction >= 64 && (this.offsetX = this.offsetY = 0);
|
|
37
|
+
}
|
|
38
|
+
/** Eases the visual correction out; call once a frame with its length in seconds. */
|
|
39
|
+
smooth(t) {
|
|
40
|
+
const s = Math.pow(this.smoothing, t * 60);
|
|
41
|
+
this.offsetX *= s, this.offsetY *= s, Math.abs(this.offsetX) < 0.01 && (this.offsetX = 0), Math.abs(this.offsetY) < 0.01 && (this.offsetY = 0);
|
|
42
|
+
}
|
|
43
|
+
/** Where to draw the body: the predicted place plus the correction still being eased out. */
|
|
44
|
+
get drawX() {
|
|
45
|
+
return this.mover.x + this.offsetX;
|
|
46
|
+
}
|
|
47
|
+
get drawY() {
|
|
48
|
+
return this.mover.y + this.offsetY;
|
|
49
|
+
}
|
|
50
|
+
/** New movement rules (a buff, a slow): applied to future steps and to replays. */
|
|
51
|
+
setParams(t) {
|
|
52
|
+
this.params = t;
|
|
53
|
+
}
|
|
54
|
+
setGrid(t) {
|
|
55
|
+
this.grid = t;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export {
|
|
59
|
+
g as PredictedMover
|
|
60
|
+
};
|
package/dist/net/Room.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createMover as l, stepMover as p } from "./movement.js";
|
|
2
|
+
import { moverToWire as c } from "./protocol.js";
|
|
3
|
+
class g {
|
|
4
|
+
constructor(e) {
|
|
5
|
+
this.options = e, this.maxQueue = e.maxQueue ?? 30, this.maxSteps = e.maxStepsPerTick ?? 3, this.backlog = e.backlog ?? 4;
|
|
6
|
+
}
|
|
7
|
+
options;
|
|
8
|
+
players = /* @__PURE__ */ new Map();
|
|
9
|
+
tick = 0;
|
|
10
|
+
known = /* @__PURE__ */ new Map();
|
|
11
|
+
maxQueue;
|
|
12
|
+
maxSteps;
|
|
13
|
+
backlog;
|
|
14
|
+
join(e, i) {
|
|
15
|
+
if (this.players.has(e)) throw new Error(`Room: player ${e} has already joined`);
|
|
16
|
+
const r = this.options.spawn(e, i), t = {
|
|
17
|
+
id: e,
|
|
18
|
+
mover: l(r.x, r.y),
|
|
19
|
+
data: i,
|
|
20
|
+
params: { ...this.options.params },
|
|
21
|
+
ack: -1,
|
|
22
|
+
queue: [],
|
|
23
|
+
aim: 0,
|
|
24
|
+
anim: 0,
|
|
25
|
+
hp: 0,
|
|
26
|
+
flags: 0,
|
|
27
|
+
strikes: 0
|
|
28
|
+
};
|
|
29
|
+
return this.players.set(e, t), this.known.set(e, /* @__PURE__ */ new Set()), t;
|
|
30
|
+
}
|
|
31
|
+
leave(e) {
|
|
32
|
+
this.players.delete(e), this.known.delete(e);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Input steps `seq`, `seq + 1`, … from a player. Steps already received are skipped (a resend), any step with
|
|
36
|
+
* numbers no client sends refuses the whole message, and steps past a full queue are dropped. Returns false when
|
|
37
|
+
* something was refused.
|
|
38
|
+
*/
|
|
39
|
+
input(e, i, r) {
|
|
40
|
+
const t = this.players.get(e);
|
|
41
|
+
if (!t) return !1;
|
|
42
|
+
if (!Number.isInteger(i) || i < 0 || !Array.isArray(r) || r.length > this.maxQueue)
|
|
43
|
+
return t.strikes++, !1;
|
|
44
|
+
for (const s of r)
|
|
45
|
+
if (!Array.isArray(s) || s.length !== 3 || !s.every((u) => Number.isFinite(u)) || Math.abs(s[0]) > 1 || Math.abs(s[1]) > 1 || !Number.isInteger(s[2]))
|
|
46
|
+
return t.strikes++, !1;
|
|
47
|
+
const n = t.ack + 1 + t.queue.length, o = i - n;
|
|
48
|
+
if (o > this.maxQueue)
|
|
49
|
+
return t.strikes++, !1;
|
|
50
|
+
for (let s = 0; s < o; s++) t.queue.push([0, 0, 0]);
|
|
51
|
+
let h = !0;
|
|
52
|
+
for (let s = 0; s < r.length; s++)
|
|
53
|
+
if (!(i + s < n)) {
|
|
54
|
+
if (t.queue.length >= this.maxQueue) {
|
|
55
|
+
h = !1, t.strikes++;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
t.queue.push([r[s][0], r[s][1], r[s][2]]);
|
|
59
|
+
}
|
|
60
|
+
return h;
|
|
61
|
+
}
|
|
62
|
+
/** One simulation step for everyone. */
|
|
63
|
+
step() {
|
|
64
|
+
this.tick++;
|
|
65
|
+
for (const e of this.players.values()) {
|
|
66
|
+
const i = e.queue.length;
|
|
67
|
+
if (i === 0) continue;
|
|
68
|
+
const r = i > this.backlog ? Math.min(this.maxSteps, i - this.backlog + 1) : 1;
|
|
69
|
+
for (let t = 0; t < r; t++) {
|
|
70
|
+
const n = e.queue.shift();
|
|
71
|
+
p(e.mover, n, e.params, this.options.grid), e.ack++, this.options.onStep?.(e, n);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** The snapshot player `id` should get now. `time` is the server's wall clock (ms). */
|
|
76
|
+
snapshotFor(e, i) {
|
|
77
|
+
const r = this.players.get(e), t = this.known.get(e);
|
|
78
|
+
if (!r || !t) return null;
|
|
79
|
+
const n = [], o = [], h = /* @__PURE__ */ new Set();
|
|
80
|
+
for (const a of this.players.values())
|
|
81
|
+
h.add(a.id), n.push([a.id, a.mover.x, a.mover.y, a.aim, a.anim, a.hp, a.flags]), t.has(a.id) || (t.add(a.id), o.push({ id: a.id, data: a.data }));
|
|
82
|
+
const s = [];
|
|
83
|
+
for (const a of t)
|
|
84
|
+
h.has(a) || (t.delete(a), s.push(a));
|
|
85
|
+
const u = { t: "snap", tick: this.tick, time: i, ack: r.ack, me: c(r.mover), up: n };
|
|
86
|
+
return o.length && (u.sp = o), s.length && (u.rm = s), u;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export {
|
|
90
|
+
g as Room
|
|
91
|
+
};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { encodeSnapshotFrame as n } from "./snapshotCodec.js";
|
|
2
|
+
class p {
|
|
3
|
+
constructor(t, s = {}) {
|
|
4
|
+
this.room = t, this.options = s, this.stepMs = 1e3 / (s.stepRate ?? 60), this.snapEvery = Math.max(1, Math.round((s.stepRate ?? 60) / (s.snapRate ?? 20))), this.now = s.now ?? Date.now;
|
|
5
|
+
}
|
|
6
|
+
room;
|
|
7
|
+
options;
|
|
8
|
+
sockets = /* @__PURE__ */ new Map();
|
|
9
|
+
joined = /* @__PURE__ */ new Set();
|
|
10
|
+
nextId = 1;
|
|
11
|
+
stepTimer = null;
|
|
12
|
+
lastStepAt = 0;
|
|
13
|
+
stepsDue = 0;
|
|
14
|
+
stepMs;
|
|
15
|
+
snapEvery;
|
|
16
|
+
now;
|
|
17
|
+
/** A socket connected; returns the id its messages and its close are reported under. */
|
|
18
|
+
connect(t) {
|
|
19
|
+
const s = this.nextId++;
|
|
20
|
+
return this.sockets.set(s, t), s;
|
|
21
|
+
}
|
|
22
|
+
/** A message arrived from socket `id` (text as a string, binary as bytes). */
|
|
23
|
+
message(t, s) {
|
|
24
|
+
if (typeof s != "string") return;
|
|
25
|
+
let e;
|
|
26
|
+
try {
|
|
27
|
+
e = JSON.parse(s);
|
|
28
|
+
} catch {
|
|
29
|
+
return this.strike(t);
|
|
30
|
+
}
|
|
31
|
+
if (!e || typeof e != "object" || typeof e.t != "string") return this.strike(t);
|
|
32
|
+
switch (e.t) {
|
|
33
|
+
case "hello": {
|
|
34
|
+
if (this.joined.has(t)) return;
|
|
35
|
+
let i;
|
|
36
|
+
try {
|
|
37
|
+
i = this.options.admit ? this.options.admit(e.data, t) : e.data;
|
|
38
|
+
} catch (o) {
|
|
39
|
+
this.sockets.get(t)?.close(4003, o instanceof Error ? o.message : "refused");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.room.join(t, i), this.joined.add(t), this.sendTo(t, { t: "welcome", id: t, tick: this.room.tick, stepRate: 1e3 / this.stepMs, snapRate: 1e3 / this.stepMs / this.snapEvery }), this.options.onJoin?.(t);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
case "input": {
|
|
46
|
+
const i = e;
|
|
47
|
+
if (!this.joined.has(t)) return;
|
|
48
|
+
this.room.input(t, i.seq, i.steps) || this.checkStrikes(t);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
case "ping": {
|
|
52
|
+
const i = e.c;
|
|
53
|
+
typeof i == "number" && Number.isFinite(i) && this.sendTo(t, { t: "pong", c: i, st: this.now() });
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
default:
|
|
57
|
+
this.joined.has(t) && this.options.onMessage?.(t, e);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Socket `id` closed. */
|
|
61
|
+
disconnect(t) {
|
|
62
|
+
this.sockets.delete(t), this.joined.delete(t) && (this.room.leave(t), this.options.onLeave?.(t));
|
|
63
|
+
}
|
|
64
|
+
/** Sends one of the game's own messages to a player. */
|
|
65
|
+
sendTo(t, s) {
|
|
66
|
+
const e = this.sockets.get(t);
|
|
67
|
+
e && (s.t === "snap" && s.up?.length ? e.send(n(s)) : e.send(JSON.stringify(s)));
|
|
68
|
+
}
|
|
69
|
+
/** Starts stepping on a timer. Steps are counted by the clock, so a late timer runs the steps it owes. */
|
|
70
|
+
start() {
|
|
71
|
+
this.stepTimer || (this.lastStepAt = this.now(), this.stepTimer = setInterval(() => {
|
|
72
|
+
const t = this.now();
|
|
73
|
+
for (this.stepsDue += (t - this.lastStepAt) / this.stepMs, this.lastStepAt = t, this.stepsDue = Math.min(this.stepsDue, 60); this.stepsDue >= 1; )
|
|
74
|
+
this.stepsDue--, this.stepOnce();
|
|
75
|
+
}, this.stepMs / 2));
|
|
76
|
+
}
|
|
77
|
+
stop() {
|
|
78
|
+
this.stepTimer && clearInterval(this.stepTimer), this.stepTimer = null;
|
|
79
|
+
}
|
|
80
|
+
/** One step, and the snapshots when they are due. Exposed for tests and for servers that drive their own loop. */
|
|
81
|
+
stepOnce() {
|
|
82
|
+
if (this.room.step(), this.room.tick % this.snapEvery !== 0) return;
|
|
83
|
+
const t = this.now();
|
|
84
|
+
for (const s of this.joined) {
|
|
85
|
+
const e = this.room.snapshotFor(s, t);
|
|
86
|
+
e && this.sendTo(s, e);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
strike(t) {
|
|
90
|
+
const s = this.room.players.get(t);
|
|
91
|
+
s && (s.strikes++, this.checkStrikes(t));
|
|
92
|
+
}
|
|
93
|
+
checkStrikes(t) {
|
|
94
|
+
const s = this.room.players.get(t);
|
|
95
|
+
s && s.strikes >= (this.options.maxStrikes ?? 20) && (this.sockets.get(t)?.close(4008, "too much invalid input"), this.disconnect(t));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export {
|
|
99
|
+
p as RoomHost
|
|
100
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const n = {
|
|
2
|
+
/** A basic attack may arrive this share of its interval early. */
|
|
3
|
+
attackEarlyShare: 0.2,
|
|
4
|
+
/** The cast lock and the attack lock a cast leaves may be cut this short. */
|
|
5
|
+
lockSlackMs: 60,
|
|
6
|
+
/** A skill may be cast this long before its cooldown ends. */
|
|
7
|
+
cooldownSlackMs: 40,
|
|
8
|
+
/** A potion may be drunk this long before its kind's cooldown ends. */
|
|
9
|
+
potionSlackMs: 150
|
|
10
|
+
};
|
|
11
|
+
function o(c, a, t) {
|
|
12
|
+
return a !== void 0 && c < a - t;
|
|
13
|
+
}
|
|
14
|
+
function e(c, a, t) {
|
|
15
|
+
return Math.max(c, a ?? c) + t;
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
n as CADENCE,
|
|
19
|
+
o as cadenceEarly,
|
|
20
|
+
e as cadenceNext
|
|
21
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { EventBus as s } from "../../events/EventBus.js";
|
|
2
|
+
class o {
|
|
3
|
+
constructor(e) {
|
|
4
|
+
this.link = e, this.off = e.events.on("message", (t) => this.receive(t));
|
|
5
|
+
}
|
|
6
|
+
link;
|
|
7
|
+
events = new s();
|
|
8
|
+
/** Your id in the lobby (-1 until welcomed). */
|
|
9
|
+
id = -1;
|
|
10
|
+
modes = [];
|
|
11
|
+
rooms = [];
|
|
12
|
+
room = null;
|
|
13
|
+
/** Your queue: the mode, since when (server ms) and how many other groups wait for it. */
|
|
14
|
+
queued = null;
|
|
15
|
+
/** Kept out of the queue until then (server ms), after a declined match. */
|
|
16
|
+
lockedUntil = 0;
|
|
17
|
+
match = null;
|
|
18
|
+
off;
|
|
19
|
+
get isHost() {
|
|
20
|
+
return this.room !== null && this.room.host === this.id;
|
|
21
|
+
}
|
|
22
|
+
/** Every member of your room but the host has said ready. */
|
|
23
|
+
get roomReady() {
|
|
24
|
+
return this.room !== null && this.room.members.every((e) => e.ready);
|
|
25
|
+
}
|
|
26
|
+
list() {
|
|
27
|
+
this.send({ t: "lobby/list" });
|
|
28
|
+
}
|
|
29
|
+
create(e = {}) {
|
|
30
|
+
this.send({ t: "lobby/create", ...e });
|
|
31
|
+
}
|
|
32
|
+
join(e) {
|
|
33
|
+
this.send({ t: "lobby/join", room: e });
|
|
34
|
+
}
|
|
35
|
+
joinByCode(e) {
|
|
36
|
+
this.send({ t: "lobby/join", code: e.trim().toUpperCase() });
|
|
37
|
+
}
|
|
38
|
+
leave() {
|
|
39
|
+
this.send({ t: "lobby/leave" });
|
|
40
|
+
}
|
|
41
|
+
setReady(e) {
|
|
42
|
+
this.send({ t: "lobby/ready", ready: e });
|
|
43
|
+
}
|
|
44
|
+
kick(e) {
|
|
45
|
+
this.send({ t: "lobby/kick", player: e });
|
|
46
|
+
}
|
|
47
|
+
promote(e) {
|
|
48
|
+
this.send({ t: "lobby/promote", player: e });
|
|
49
|
+
}
|
|
50
|
+
setSettings(e) {
|
|
51
|
+
this.send({ t: "lobby/settings", settings: e });
|
|
52
|
+
}
|
|
53
|
+
chat(e) {
|
|
54
|
+
this.send({ t: "lobby/chat", text: e });
|
|
55
|
+
}
|
|
56
|
+
startRoom() {
|
|
57
|
+
this.send({ t: "lobby/start" });
|
|
58
|
+
}
|
|
59
|
+
queue(e) {
|
|
60
|
+
this.send({ t: "queue/join", mode: e });
|
|
61
|
+
}
|
|
62
|
+
leaveQueue() {
|
|
63
|
+
this.send({ t: "queue/leave" });
|
|
64
|
+
}
|
|
65
|
+
accept() {
|
|
66
|
+
this.match && (this.match.answered = !0), this.send({ t: "match/accept" }), this.events.emit("change", void 0);
|
|
67
|
+
}
|
|
68
|
+
decline() {
|
|
69
|
+
this.match && (this.match.answered = !0), this.send({ t: "match/decline" });
|
|
70
|
+
}
|
|
71
|
+
destroy() {
|
|
72
|
+
this.off(), this.events.clear();
|
|
73
|
+
}
|
|
74
|
+
send(e) {
|
|
75
|
+
this.link.send(e);
|
|
76
|
+
}
|
|
77
|
+
receive(e) {
|
|
78
|
+
switch (e.t) {
|
|
79
|
+
case "lobby/welcome":
|
|
80
|
+
this.id = e.id, this.modes = e.modes;
|
|
81
|
+
break;
|
|
82
|
+
case "lobby/rooms":
|
|
83
|
+
this.rooms = e.rooms;
|
|
84
|
+
break;
|
|
85
|
+
case "lobby/room":
|
|
86
|
+
this.room = e.room;
|
|
87
|
+
break;
|
|
88
|
+
case "lobby/chat":
|
|
89
|
+
this.events.emit("chat", { from: e.from, text: e.text });
|
|
90
|
+
return;
|
|
91
|
+
case "lobby/kicked":
|
|
92
|
+
this.room = null, this.events.emit("kicked", void 0);
|
|
93
|
+
break;
|
|
94
|
+
case "lobby/error":
|
|
95
|
+
this.events.emit("error", { code: e.code, message: e.message });
|
|
96
|
+
return;
|
|
97
|
+
case "queue/status":
|
|
98
|
+
this.queued = e.mode ? { mode: e.mode, since: e.since, waiting: e.waiting } : null;
|
|
99
|
+
break;
|
|
100
|
+
case "queue/locked":
|
|
101
|
+
this.lockedUntil = e.until;
|
|
102
|
+
break;
|
|
103
|
+
case "match/found":
|
|
104
|
+
this.queued = null, this.match = { id: e.match, mode: e.mode, players: e.players, expiresAt: e.expiresAt, accepted: [], answered: !1 }, this.events.emit("found", this.match);
|
|
105
|
+
break;
|
|
106
|
+
case "match/accepted":
|
|
107
|
+
this.match?.id === e.match && (this.match.accepted = e.accepted);
|
|
108
|
+
break;
|
|
109
|
+
case "match/cancelled":
|
|
110
|
+
this.match?.id === e.match && (this.match = null), this.events.emit("cancelled", { match: e.match, reason: e.reason, requeued: e.requeued });
|
|
111
|
+
break;
|
|
112
|
+
case "match/start":
|
|
113
|
+
this.match = null, this.queued = null, this.events.emit("start", { match: e.match, mode: e.mode, players: e.players, data: e.data });
|
|
114
|
+
break;
|
|
115
|
+
default:
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.events.emit("change", void 0);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export {
|
|
122
|
+
o as LobbyClient
|
|
123
|
+
};
|