1681-engine 0.5.8 → 0.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +95 -0
- package/README.md +3 -0
- package/dist/1681-engine.js +526 -409
- package/dist/ambient/ColorGrade.js +0 -1
- package/dist/ambient/DayClock.js +0 -1
- package/dist/ambient/WeatherLayer.js +0 -1
- package/dist/ambient/grade.js +0 -1
- package/dist/ambient/life/Birds.js +73 -0
- package/dist/ambient/life/Butterflies.js +43 -0
- package/dist/ambient/life/ChimneySmoke.js +50 -0
- package/dist/ambient/life/Drift.js +75 -0
- package/dist/ambient/life/Fireflies.js +52 -0
- package/dist/ambient/life/lifeMotion.js +49 -0
- package/dist/ambient/weather.js +0 -1
- package/dist/anim/AnimStateMachine.js +0 -1
- package/dist/anim/Animator.js +0 -1
- package/dist/anim/animStateCompile.js +0 -1
- package/dist/anim/animStateSystem.js +0 -1
- package/dist/anim/animationSystem.js +0 -1
- package/dist/anim/asepriteSlices.js +0 -1
- package/dist/anim/asepriteTags.js +0 -1
- package/dist/anim/parseAseprite.js +0 -1
- package/dist/assets/AssetLoader.js +177 -34
- package/dist/assets/Prepainter.js +61 -0
- package/dist/assets/loadAseprite.js +0 -1
- package/dist/assets/takeCleanerWorker-DTcI_Jqr.js +0 -1
- package/dist/assets/textureAtlas.js +58 -0
- package/dist/assets/workerPainter.js +39 -0
- package/dist/audio/Footsteps.js +0 -1
- package/dist/audio/MusicPlayer.js +0 -1
- package/dist/audio/SoundEngine.js +13 -7
- package/dist/audio/cleanTake.js +0 -1
- package/dist/audio/music/ElementVoice.js +0 -1
- package/dist/audio/music/GraphVoice.js +0 -1
- package/dist/audio/music/MusicChannel.js +0 -1
- package/dist/audio/music/musicVoice.js +0 -1
- package/dist/audio/sampleBank.js +0 -1
- package/dist/audio/soundTable.js +0 -1
- package/dist/audio/synth.js +0 -1
- package/dist/cjs/electron/electronLike.d.ts +55 -0
- package/dist/cjs/electron/electronLike.js +7 -0
- package/dist/cjs/electron/index.d.ts +14 -0
- package/dist/cjs/electron/index.js +20 -0
- package/dist/cjs/electron/lockdown.d.ts +33 -0
- package/dist/cjs/electron/lockdown.js +69 -0
- package/dist/cjs/electron/lockdownRules.d.ts +28 -0
- package/dist/cjs/electron/lockdownRules.js +61 -0
- package/dist/cjs/electron/sessionStore.d.ts +40 -0
- package/dist/cjs/electron/sessionStore.js +77 -0
- package/dist/cjs/electron/shellId.d.ts +22 -0
- package/dist/cjs/electron/shellId.js +31 -0
- package/dist/cjs/electron/webFiles.d.ts +13 -0
- package/dist/cjs/electron/webFiles.js +52 -0
- package/dist/cjs/electron/webPatcher.d.ts +80 -0
- package/dist/cjs/electron/webPatcher.js +216 -0
- package/dist/cjs/electron/webPointers.d.ts +19 -0
- package/dist/cjs/electron/webPointers.js +35 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/updates/index.d.ts +8 -0
- package/dist/cjs/updates/index.js +21 -0
- package/dist/cjs/updates/manifest.d.ts +73 -0
- package/dist/cjs/updates/manifest.js +67 -0
- package/dist/cjs/updates/pickUpdate.d.ts +42 -0
- package/dist/cjs/updates/pickUpdate.js +52 -0
- package/dist/cjs/updates/webPlan.d.ts +20 -0
- package/dist/cjs/updates/webPlan.js +34 -0
- package/dist/core/BitmapLabel.js +0 -1
- package/dist/core/Camera.js +1 -2
- package/dist/core/Clock.js +31 -21
- package/dist/core/Graphics.js +0 -1
- package/dist/core/Group.js +0 -1
- package/dist/core/Image.js +0 -1
- package/dist/core/ObjectFactory.js +0 -1
- package/dist/core/Pointer.js +46 -24
- package/dist/core/Rectangle.js +0 -1
- package/dist/core/Stage.js +5 -6
- package/dist/core/Text.js +0 -1
- package/dist/core/TextureRegistry.js +54 -24
- package/dist/core/Timeline.js +0 -1
- package/dist/core/TimelineBuilder.js +0 -1
- package/dist/core/TimelineChild.js +0 -1
- package/dist/core/Tweener.js +0 -1
- package/dist/core/atlas.js +0 -1
- package/dist/core/atlasPlan.js +0 -1
- package/dist/core/blendLayer.js +11 -0
- package/dist/core/eases.js +0 -1
- package/dist/core/gameObject.js +22 -20
- package/dist/core/pixelZoom.js +43 -0
- package/dist/core/pixiPatches.js +0 -1
- package/dist/core/runDue.js +28 -0
- package/dist/core/silhouette.js +49 -0
- package/dist/core/timelinePlace.js +0 -1
- package/dist/core/tweenProps.js +0 -1
- package/dist/debug/DebugOverlay.js +0 -1
- package/dist/debug/DrawCallCounter.js +15 -12
- package/dist/debug/ErrorLog.js +0 -1
- package/dist/debug/FrameStats.js +0 -1
- package/dist/debug/inspectWorld.js +0 -1
- package/dist/diagnostics/ErrorDeduper.js +0 -1
- package/dist/diagnostics/FrameSampler.js +0 -1
- package/dist/diagnostics/bootWatch.js +0 -1
- package/dist/diagnostics/captureErrors.js +0 -1
- package/dist/diagnostics/contextLoss.js +0 -1
- package/dist/diagnostics/frameStats.js +0 -1
- package/dist/diagnostics/gpuInfo.js +0 -1
- package/dist/diagnostics/renderGuard.js +0 -1
- package/dist/ecs/SparseSet.js +0 -1
- package/dist/ecs/World.js +0 -1
- package/dist/ecs/fields.js +0 -1
- package/dist/electron/lockdown.js +31 -0
- package/dist/electron/lockdownRules.js +42 -0
- package/dist/electron/sessionStore.js +48 -0
- package/dist/electron/shellId.js +18 -0
- package/dist/electron/webFiles.js +36 -0
- package/dist/electron/webPatcher.js +147 -0
- package/dist/electron/webPointers.js +25 -0
- package/dist/electron.js +19 -0
- package/dist/engine/Engine.js +42 -18
- package/dist/engine/FixedLoop.js +0 -1
- package/dist/engine/HiddenPause.js +27 -0
- package/dist/engine/Scene.js +0 -1
- package/dist/engine/SceneManager.js +0 -1
- package/dist/events/EventBus.js +0 -1
- package/dist/fx/Afterimages.js +82 -0
- package/dist/fx/FloatingText.js +0 -1
- package/dist/fx/hitStop.js +0 -1
- package/dist/fx/viewCull.js +0 -1
- package/dist/i18n/Translator.js +0 -1
- package/dist/i18n/extractStrings.js +0 -1
- package/dist/i18n/formatMessage.js +0 -1
- package/dist/input/Actions.js +29 -21
- package/dist/input/AimGesture.js +0 -1
- package/dist/input/Keyboard.js +0 -1
- package/dist/input/Keymap.js +0 -1
- package/dist/input/TargetLock.js +0 -1
- package/dist/input/aimAxis.js +0 -1
- package/dist/input/haptics.js +50 -0
- package/dist/input/keyChord.js +0 -1
- package/dist/input/longPress.js +0 -1
- package/dist/input/rumble.js +42 -0
- package/dist/input/stickAxis.js +0 -1
- package/dist/input/touchDetect.js +0 -1
- package/dist/light/LightLayer.js +0 -1
- package/dist/nav/MinHeap.js +0 -1
- package/dist/nav/findPath.js +0 -1
- package/dist/nav/navGrid.js +0 -1
- package/dist/nav/nearestOpen.js +0 -1
- package/dist/nav/straightenPath.js +0 -1
- package/dist/net/ApiClient.js +96 -0
- package/dist/net/Connection.js +39 -16
- package/dist/net/InterpolationBuffer.js +0 -1
- package/dist/net/PredictedMover.js +0 -1
- package/dist/net/Room.js +0 -1
- package/dist/net/RoomHost.js +0 -1
- package/dist/net/cadence.js +0 -1
- package/dist/net/constants.js +0 -1
- package/dist/net/lobby/LobbyClient.js +0 -1
- package/dist/net/lobby/LobbyHost.js +0 -1
- package/dist/net/lobby/LobbyRooms.js +0 -1
- package/dist/net/lobby/Matchmaker.js +0 -1
- package/dist/net/movement.js +40 -39
- package/dist/net/protocol.js +0 -1
- package/dist/net/reconnect.js +10 -0
- package/dist/net/serverClock.js +0 -1
- package/dist/net/snapshotCodec.js +0 -1
- package/dist/parallax/Parallax.js +0 -1
- package/dist/parallax/ParallaxLayer.js +0 -1
- package/dist/parallax/parallaxMath.js +0 -1
- package/dist/particles/Emitter.js +0 -1
- package/dist/particles/ParticleBudget.js +0 -1
- package/dist/particles/ParticleSim.js +0 -1
- package/dist/particles/particleCurves.js +0 -1
- package/dist/particles/particleSampling.js +0 -1
- package/dist/physics/Body.js +0 -1
- package/dist/physics/BroadPhase.js +0 -1
- package/dist/physics/Contact.js +0 -1
- package/dist/physics/ContactSolver.js +0 -1
- package/dist/physics/PhysicsWorld.js +0 -1
- package/dist/physics/SpatialHash.js +0 -1
- package/dist/physics/collide.js +0 -1
- package/dist/physics/collidePolygon.js +0 -1
- package/dist/physics/contactReport.js +0 -1
- package/dist/physics/drawColliders.js +0 -1
- package/dist/physics/physicsSystem.js +0 -1
- package/dist/physics/polygon.js +0 -1
- package/dist/physics/raycast.js +0 -1
- package/dist/physics/syncToBody.js +0 -1
- package/dist/physics/tileBodies.js +0 -1
- package/dist/physics/types.js +0 -1
- package/dist/pixel/Darkness.js +50 -47
- package/dist/pixel/DitherVignette.js +0 -1
- package/dist/pixel/Evaporation.js +0 -1
- package/dist/pixel/NightShade.js +0 -1
- package/dist/pixel/PixelLayer.js +0 -1
- package/dist/pixel/PixelMarks.js +99 -0
- package/dist/pixel/SwayProp.js +0 -1
- package/dist/pixel/aimPixels.js +67 -0
- package/dist/pixel/lifeArt.js +83 -0
- package/dist/pixel/lights.js +0 -1
- package/dist/pixel/nineSlice.js +0 -1
- package/dist/pixel/paintLayer.js +0 -1
- package/dist/pixel/palette.js +0 -1
- package/dist/pixel/pixel.js +0 -1
- package/dist/pixel/pixelPaint.js +27 -24
- package/dist/pixel/pixelParticles.js +35 -0
- package/dist/pixel/pixelTone.js +0 -1
- package/dist/pixel/propKit.js +0 -1
- package/dist/pixel/ramp.js +0 -1
- package/dist/pixel/selout.js +0 -1
- package/dist/pixel/spritePixels.js +0 -1
- package/dist/pixel/swayRig.js +0 -1
- package/dist/pixel/vignetteMask.js +0 -1
- package/dist/pixel/weatherArt.js +0 -1
- package/dist/pixel.js +82 -71
- package/dist/platform/appResume.js +18 -0
- package/dist/platform/fullscreen.js +52 -0
- package/dist/platform/orientation.js +26 -0
- package/dist/platform/pointerLock.js +37 -0
- package/dist/platform/reducedMotion.js +23 -0
- package/dist/platform/timeoutSignal.js +14 -0
- package/dist/platform/touch.js +0 -1
- package/dist/postfx/BloomFilter.js +0 -1
- package/dist/postfx/ChromaticAberrationFilter.js +0 -1
- package/dist/postfx/ColorAdjustFilter.js +0 -1
- package/dist/postfx/CrtFilter.js +0 -1
- package/dist/postfx/PixelateFilter.js +0 -1
- package/dist/postfx/PostFx.js +0 -1
- package/dist/postfx/ShockwaveFilter.js +0 -1
- package/dist/postfx/VignetteFilter.js +0 -1
- package/dist/postfx/fxAnimator.js +0 -1
- package/dist/postfx/fxShader.js +0 -1
- package/dist/postfx.js +0 -1
- package/dist/react/ChoiceDialog.js +0 -1
- package/dist/react/ConfirmButton.js +24 -0
- package/dist/react/ConfirmDialog.js +0 -1
- package/dist/react/Glyph.js +0 -1
- package/dist/react/Modal.js +0 -1
- package/dist/react/Panel.js +0 -1
- package/dist/react/PixelImage.js +0 -1
- package/dist/react/Select.js +0 -1
- package/dist/react/Slider.js +0 -1
- package/dist/react/SplitPane.js +0 -1
- package/dist/react/TabStrip.js +0 -1
- package/dist/react/TitleTips.js +0 -1
- package/dist/react/Tooltip.js +0 -1
- package/dist/react/UiProvider.js +0 -1
- package/dist/react/baseCss.js +1 -1
- package/dist/react/choiceStore.js +0 -1
- package/dist/react/classNames.js +0 -1
- package/dist/react/confirmStore.js +0 -1
- package/dist/react/labels.js +7 -7
- package/dist/react/placement.js +0 -1
- package/dist/react/useFillSheet.js +0 -1
- package/dist/react/useFitToViewport.js +0 -1
- package/dist/react/useJsonSelector.js +13 -0
- package/dist/react/usePicked.js +0 -1
- package/dist/react/useStore.js +0 -1
- package/dist/react/useViewport.js +0 -1
- package/dist/react.js +73 -69
- package/dist/rig/PosePlayer.js +0 -1
- package/dist/rig/RigView.js +0 -1
- package/dist/rig/Skeleton.js +0 -1
- package/dist/rig/humanoid.js +0 -1
- package/dist/rig/humanoid.json.js +0 -1
- package/dist/rig/humanoidPoses.js +0 -1
- package/dist/rig/poseMath.js +0 -1
- package/dist/rig/poses.json.js +0 -1
- package/dist/save/Autosaver.js +0 -1
- package/dist/save/MemoryBackend.js +0 -1
- package/dist/save/SaveStore.js +0 -1
- package/dist/save/WebStorageBackend.js +0 -1
- package/dist/save/checksum.js +0 -1
- package/dist/save/migrateSave.js +0 -1
- package/dist/settings.js +0 -1
- package/dist/tilemap/TilemapView.js +57 -33
- package/dist/tilemap/autotile.js +103 -0
- package/dist/tilemap/collision.js +29 -19
- package/dist/tilemap/ldtk.js +21 -0
- package/dist/tilemap/ldtkParse.js +191 -0
- package/dist/tilemap/tiled.js +0 -1
- package/dist/transitions/CrossfadeTransition.js +0 -1
- package/dist/transitions/DitherWipeTransition.js +0 -1
- package/dist/transitions/FadeTransition.js +0 -1
- package/dist/transitions/Letterbox.js +0 -1
- package/dist/transitions/ditherMask.js +0 -1
- package/dist/transitions/transitionTo.js +0 -1
- package/dist/transitions/tweenDone.js +0 -1
- package/dist/types/ambient/life/Birds.d.ts +50 -0
- package/dist/types/ambient/life/Birds.d.ts.map +1 -0
- package/dist/types/ambient/life/Butterflies.d.ts +32 -0
- package/dist/types/ambient/life/Butterflies.d.ts.map +1 -0
- package/dist/types/ambient/life/ChimneySmoke.d.ts +37 -0
- package/dist/types/ambient/life/ChimneySmoke.d.ts.map +1 -0
- package/dist/types/ambient/life/Drift.d.ts +58 -0
- package/dist/types/ambient/life/Drift.d.ts.map +1 -0
- package/dist/types/ambient/life/Fireflies.d.ts +43 -0
- package/dist/types/ambient/life/Fireflies.d.ts.map +1 -0
- package/dist/types/ambient/life/lifeMotion.d.ts +63 -0
- package/dist/types/ambient/life/lifeMotion.d.ts.map +1 -0
- package/dist/types/assets/AssetLoader.d.ts +83 -8
- package/dist/types/assets/AssetLoader.d.ts.map +1 -1
- package/dist/types/assets/Prepainter.d.ts +64 -0
- package/dist/types/assets/Prepainter.d.ts.map +1 -0
- package/dist/types/assets/textureAtlas.d.ts +35 -0
- package/dist/types/assets/textureAtlas.d.ts.map +1 -0
- package/dist/types/assets/workerPainter.d.ts +21 -0
- package/dist/types/assets/workerPainter.d.ts.map +1 -0
- package/dist/types/audio/SoundEngine.d.ts +5 -0
- package/dist/types/audio/SoundEngine.d.ts.map +1 -1
- package/dist/types/core/Camera.d.ts +1 -1
- package/dist/types/core/Camera.d.ts.map +1 -1
- package/dist/types/core/Clock.d.ts +14 -2
- package/dist/types/core/Clock.d.ts.map +1 -1
- package/dist/types/core/Pointer.d.ts +18 -0
- package/dist/types/core/Pointer.d.ts.map +1 -1
- package/dist/types/core/Stage.d.ts.map +1 -1
- package/dist/types/core/TextureRegistry.d.ts +39 -0
- package/dist/types/core/TextureRegistry.d.ts.map +1 -1
- package/dist/types/core/blendLayer.d.ts +23 -0
- package/dist/types/core/blendLayer.d.ts.map +1 -0
- package/dist/types/core/gameObject.d.ts.map +1 -1
- package/dist/types/core/pixelZoom.d.ts +45 -0
- package/dist/types/core/pixelZoom.d.ts.map +1 -0
- package/dist/types/core/runDue.d.ts +15 -0
- package/dist/types/core/runDue.d.ts.map +1 -0
- package/dist/types/core/silhouette.d.ts +16 -0
- package/dist/types/core/silhouette.d.ts.map +1 -0
- package/dist/types/debug/DrawCallCounter.d.ts.map +1 -1
- package/dist/types/electron/electronLike.d.ts +56 -0
- package/dist/types/electron/electronLike.d.ts.map +1 -0
- package/dist/types/electron/index.d.ts +15 -0
- package/dist/types/electron/index.d.ts.map +1 -0
- package/dist/types/electron/lockdown.d.ts +34 -0
- package/dist/types/electron/lockdown.d.ts.map +1 -0
- package/dist/types/electron/lockdownRules.d.ts +29 -0
- package/dist/types/electron/lockdownRules.d.ts.map +1 -0
- package/dist/types/electron/sessionStore.d.ts +41 -0
- package/dist/types/electron/sessionStore.d.ts.map +1 -0
- package/dist/types/electron/shellId.d.ts +23 -0
- package/dist/types/electron/shellId.d.ts.map +1 -0
- package/dist/types/electron/webFiles.d.ts +14 -0
- package/dist/types/electron/webFiles.d.ts.map +1 -0
- package/dist/types/electron/webPatcher.d.ts +81 -0
- package/dist/types/electron/webPatcher.d.ts.map +1 -0
- package/dist/types/electron/webPointers.d.ts +20 -0
- package/dist/types/electron/webPointers.d.ts.map +1 -0
- package/dist/types/engine/Engine.d.ts +16 -0
- package/dist/types/engine/Engine.d.ts.map +1 -1
- package/dist/types/engine/HiddenPause.d.ts +22 -0
- package/dist/types/engine/HiddenPause.d.ts.map +1 -0
- package/dist/types/fx/Afterimages.d.ts +62 -0
- package/dist/types/fx/Afterimages.d.ts.map +1 -0
- package/dist/types/index.d.ts +32 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/input/Actions.d.ts +7 -1
- package/dist/types/input/Actions.d.ts.map +1 -1
- package/dist/types/input/haptics.d.ts +42 -0
- package/dist/types/input/haptics.d.ts.map +1 -0
- package/dist/types/input/rumble.d.ts +41 -0
- package/dist/types/input/rumble.d.ts.map +1 -0
- package/dist/types/net/ApiClient.d.ts +74 -0
- package/dist/types/net/ApiClient.d.ts.map +1 -0
- package/dist/types/net/Connection.d.ts +22 -0
- package/dist/types/net/Connection.d.ts.map +1 -1
- package/dist/types/net/constants.d.ts +13 -4
- package/dist/types/net/constants.d.ts.map +1 -1
- package/dist/types/net/movement.d.ts.map +1 -1
- package/dist/types/net/reconnect.d.ts +14 -0
- package/dist/types/net/reconnect.d.ts.map +1 -0
- package/dist/types/pixel/Darkness.d.ts +17 -5
- package/dist/types/pixel/Darkness.d.ts.map +1 -1
- package/dist/types/pixel/PixelMarks.d.ts +68 -0
- package/dist/types/pixel/PixelMarks.d.ts.map +1 -0
- package/dist/types/pixel/aimPixels.d.ts +23 -0
- package/dist/types/pixel/aimPixels.d.ts.map +1 -0
- package/dist/types/pixel/index.d.ts +4 -1
- package/dist/types/pixel/index.d.ts.map +1 -1
- package/dist/types/pixel/lifeArt.d.ts +63 -0
- package/dist/types/pixel/lifeArt.d.ts.map +1 -0
- package/dist/types/pixel/pixelPaint.d.ts +1 -0
- package/dist/types/pixel/pixelPaint.d.ts.map +1 -1
- package/dist/types/pixel/pixelParticles.d.ts +21 -0
- package/dist/types/pixel/pixelParticles.d.ts.map +1 -0
- package/dist/types/platform/appResume.d.ts +25 -0
- package/dist/types/platform/appResume.d.ts.map +1 -0
- package/dist/types/platform/fullscreen.d.ts +37 -0
- package/dist/types/platform/fullscreen.d.ts.map +1 -0
- package/dist/types/platform/orientation.d.ts +19 -0
- package/dist/types/platform/orientation.d.ts.map +1 -0
- package/dist/types/platform/pointerLock.d.ts +26 -0
- package/dist/types/platform/pointerLock.d.ts.map +1 -0
- package/dist/types/platform/reducedMotion.d.ts +20 -0
- package/dist/types/platform/reducedMotion.d.ts.map +1 -0
- package/dist/types/platform/timeoutSignal.d.ts +6 -0
- package/dist/types/platform/timeoutSignal.d.ts.map +1 -0
- package/dist/types/react/ConfirmButton.d.ts +26 -0
- package/dist/types/react/ConfirmButton.d.ts.map +1 -0
- package/dist/types/react/baseCss.d.ts +1 -1
- package/dist/types/react/baseCss.d.ts.map +1 -1
- package/dist/types/react/index.d.ts +2 -0
- package/dist/types/react/index.d.ts.map +1 -1
- package/dist/types/react/labels.d.ts +2 -0
- package/dist/types/react/labels.d.ts.map +1 -1
- package/dist/types/react/useJsonSelector.d.ts +13 -0
- package/dist/types/react/useJsonSelector.d.ts.map +1 -0
- package/dist/types/tilemap/TilemapView.d.ts +17 -0
- package/dist/types/tilemap/TilemapView.d.ts.map +1 -1
- package/dist/types/tilemap/autotile.d.ts +95 -0
- package/dist/types/tilemap/autotile.d.ts.map +1 -0
- package/dist/types/tilemap/collision.d.ts +8 -0
- package/dist/types/tilemap/collision.d.ts.map +1 -1
- package/dist/types/tilemap/ldtk.d.ts +97 -0
- package/dist/types/tilemap/ldtk.d.ts.map +1 -0
- package/dist/types/tilemap/ldtkParse.d.ts +26 -0
- package/dist/types/tilemap/ldtkParse.d.ts.map +1 -0
- package/dist/types/ui/index.d.ts +4 -0
- package/dist/types/ui/index.d.ts.map +1 -1
- package/dist/types/ui/rich/RichText.d.ts +48 -0
- package/dist/types/ui/rich/RichText.d.ts.map +1 -0
- package/dist/types/ui/rich/richFonts.d.ts +70 -0
- package/dist/types/ui/rich/richFonts.d.ts.map +1 -0
- package/dist/types/ui/rich/richLayout.d.ts +76 -0
- package/dist/types/ui/rich/richLayout.d.ts.map +1 -0
- package/dist/types/ui/rich/richMarkup.d.ts +48 -0
- package/dist/types/ui/rich/richMarkup.d.ts.map +1 -0
- package/dist/types/updates/index.d.ts +9 -0
- package/dist/types/updates/index.d.ts.map +1 -0
- package/dist/types/updates/manifest.d.ts +74 -0
- package/dist/types/updates/manifest.d.ts.map +1 -0
- package/dist/types/updates/pickUpdate.d.ts +43 -0
- package/dist/types/updates/pickUpdate.d.ts.map +1 -0
- package/dist/types/updates/webPlan.d.ts +21 -0
- package/dist/types/updates/webPlan.d.ts.map +1 -0
- package/dist/ui/Bar.js +0 -1
- package/dist/ui/Button.js +0 -1
- package/dist/ui/Dialog.js +0 -1
- package/dist/ui/FocusManager.js +0 -1
- package/dist/ui/Label.js +0 -1
- package/dist/ui/List.js +0 -1
- package/dist/ui/Panel.js +0 -1
- package/dist/ui/ScrollView.js +0 -1
- package/dist/ui/Slider.js +0 -1
- package/dist/ui/Stack.js +0 -1
- package/dist/ui/Toggle.js +0 -1
- package/dist/ui/UiHost.js +0 -1
- package/dist/ui/UiPointerGate.js +0 -1
- package/dist/ui/UiRoot.js +0 -1
- package/dist/ui/Widget.js +0 -1
- package/dist/ui/dom/DomOverlay.js +0 -1
- package/dist/ui/dom/DomWorldAnchors.js +0 -1
- package/dist/ui/dom/InputShield.js +0 -1
- package/dist/ui/dom/createStore.js +0 -1
- package/dist/ui/dom/shieldDecision.js +0 -1
- package/dist/ui/dom/worldToScreen.js +0 -1
- package/dist/ui/layout/anchor.js +0 -1
- package/dist/ui/layout/barDrain.js +0 -1
- package/dist/ui/layout/fitToViewport.js +0 -1
- package/dist/ui/layout/focusNav.js +0 -1
- package/dist/ui/layout/geometry.js +0 -1
- package/dist/ui/layout/listWidth.js +0 -1
- package/dist/ui/layout/placeTooltip.js +0 -1
- package/dist/ui/layout/scroll.js +0 -1
- package/dist/ui/layout/slider.js +0 -1
- package/dist/ui/layout/stack.js +0 -1
- package/dist/ui/layout/wrapRow.js +0 -1
- package/dist/ui/rich/RichText.js +87 -0
- package/dist/ui/rich/richFonts.js +105 -0
- package/dist/ui/rich/richLayout.js +132 -0
- package/dist/ui/rich/richMarkup.js +67 -0
- package/dist/ui.js +75 -65
- package/dist/updates/manifest.js +35 -0
- package/dist/updates/pickUpdate.js +27 -0
- package/dist/updates/webPlan.js +14 -0
- package/dist/updates.js +15 -0
- package/package.json +31 -6
- package/dist/1681-engine.js.map +0 -1
- package/dist/ambient/ColorGrade.js.map +0 -1
- package/dist/ambient/DayClock.js.map +0 -1
- package/dist/ambient/WeatherLayer.js.map +0 -1
- package/dist/ambient/grade.js.map +0 -1
- package/dist/ambient/weather.js.map +0 -1
- package/dist/anim/AnimStateMachine.js.map +0 -1
- package/dist/anim/Animator.js.map +0 -1
- package/dist/anim/animStateCompile.js.map +0 -1
- package/dist/anim/animStateSystem.js.map +0 -1
- package/dist/anim/animationSystem.js.map +0 -1
- package/dist/anim/asepriteSlices.js.map +0 -1
- package/dist/anim/asepriteTags.js.map +0 -1
- package/dist/anim/parseAseprite.js.map +0 -1
- package/dist/assets/AssetLoader.js.map +0 -1
- package/dist/assets/loadAseprite.js.map +0 -1
- package/dist/assets/takeCleanerWorker-DTcI_Jqr.js.map +0 -1
- package/dist/audio/Footsteps.js.map +0 -1
- package/dist/audio/MusicPlayer.js.map +0 -1
- package/dist/audio/SoundEngine.js.map +0 -1
- package/dist/audio/cleanTake.js.map +0 -1
- package/dist/audio/music/ElementVoice.js.map +0 -1
- package/dist/audio/music/GraphVoice.js.map +0 -1
- package/dist/audio/music/MusicChannel.js.map +0 -1
- package/dist/audio/music/musicVoice.js.map +0 -1
- package/dist/audio/sampleBank.js.map +0 -1
- package/dist/audio/soundTable.js.map +0 -1
- package/dist/audio/synth.js.map +0 -1
- package/dist/core/BitmapLabel.js.map +0 -1
- package/dist/core/Camera.js.map +0 -1
- package/dist/core/Clock.js.map +0 -1
- package/dist/core/Graphics.js.map +0 -1
- package/dist/core/Group.js.map +0 -1
- package/dist/core/Image.js.map +0 -1
- package/dist/core/ObjectFactory.js.map +0 -1
- package/dist/core/Pointer.js.map +0 -1
- package/dist/core/Rectangle.js.map +0 -1
- package/dist/core/Stage.js.map +0 -1
- package/dist/core/Text.js.map +0 -1
- package/dist/core/TextureRegistry.js.map +0 -1
- package/dist/core/Timeline.js.map +0 -1
- package/dist/core/TimelineBuilder.js.map +0 -1
- package/dist/core/TimelineChild.js.map +0 -1
- package/dist/core/Tweener.js.map +0 -1
- package/dist/core/atlas.js.map +0 -1
- package/dist/core/atlasPlan.js.map +0 -1
- package/dist/core/eases.js.map +0 -1
- package/dist/core/gameObject.js.map +0 -1
- package/dist/core/pixiPatches.js.map +0 -1
- package/dist/core/timelinePlace.js.map +0 -1
- package/dist/core/tweenProps.js.map +0 -1
- package/dist/debug/DebugOverlay.js.map +0 -1
- package/dist/debug/DrawCallCounter.js.map +0 -1
- package/dist/debug/ErrorLog.js.map +0 -1
- package/dist/debug/FrameStats.js.map +0 -1
- package/dist/debug/inspectWorld.js.map +0 -1
- package/dist/diagnostics/ErrorDeduper.js.map +0 -1
- package/dist/diagnostics/FrameSampler.js.map +0 -1
- package/dist/diagnostics/bootWatch.js.map +0 -1
- package/dist/diagnostics/captureErrors.js.map +0 -1
- package/dist/diagnostics/contextLoss.js.map +0 -1
- package/dist/diagnostics/frameStats.js.map +0 -1
- package/dist/diagnostics/gpuInfo.js.map +0 -1
- package/dist/diagnostics/renderGuard.js.map +0 -1
- package/dist/ecs/SparseSet.js.map +0 -1
- package/dist/ecs/World.js.map +0 -1
- package/dist/ecs/fields.js.map +0 -1
- package/dist/engine/Engine.js.map +0 -1
- package/dist/engine/FixedLoop.js.map +0 -1
- package/dist/engine/Scene.js.map +0 -1
- package/dist/engine/SceneManager.js.map +0 -1
- package/dist/events/EventBus.js.map +0 -1
- package/dist/fx/FloatingText.js.map +0 -1
- package/dist/fx/hitStop.js.map +0 -1
- package/dist/fx/viewCull.js.map +0 -1
- package/dist/i18n/Translator.js.map +0 -1
- package/dist/i18n/extractStrings.js.map +0 -1
- package/dist/i18n/formatMessage.js.map +0 -1
- package/dist/input/Actions.js.map +0 -1
- package/dist/input/AimGesture.js.map +0 -1
- package/dist/input/Keyboard.js.map +0 -1
- package/dist/input/Keymap.js.map +0 -1
- package/dist/input/TargetLock.js.map +0 -1
- package/dist/input/aimAxis.js.map +0 -1
- package/dist/input/keyChord.js.map +0 -1
- package/dist/input/longPress.js.map +0 -1
- package/dist/input/stickAxis.js.map +0 -1
- package/dist/input/touchDetect.js.map +0 -1
- package/dist/light/LightLayer.js.map +0 -1
- package/dist/nav/MinHeap.js.map +0 -1
- package/dist/nav/findPath.js.map +0 -1
- package/dist/nav/navGrid.js.map +0 -1
- package/dist/nav/nearestOpen.js.map +0 -1
- package/dist/nav/straightenPath.js.map +0 -1
- package/dist/net/Connection.js.map +0 -1
- package/dist/net/InterpolationBuffer.js.map +0 -1
- package/dist/net/PredictedMover.js.map +0 -1
- package/dist/net/Room.js.map +0 -1
- package/dist/net/RoomHost.js.map +0 -1
- package/dist/net/cadence.js.map +0 -1
- package/dist/net/constants.js.map +0 -1
- package/dist/net/lobby/LobbyClient.js.map +0 -1
- package/dist/net/lobby/LobbyHost.js.map +0 -1
- package/dist/net/lobby/LobbyRooms.js.map +0 -1
- package/dist/net/lobby/Matchmaker.js.map +0 -1
- package/dist/net/movement.js.map +0 -1
- package/dist/net/protocol.js.map +0 -1
- package/dist/net/serverClock.js.map +0 -1
- package/dist/net/snapshotCodec.js.map +0 -1
- package/dist/parallax/Parallax.js.map +0 -1
- package/dist/parallax/ParallaxLayer.js.map +0 -1
- package/dist/parallax/parallaxMath.js.map +0 -1
- package/dist/particles/Emitter.js.map +0 -1
- package/dist/particles/ParticleBudget.js.map +0 -1
- package/dist/particles/ParticleSim.js.map +0 -1
- package/dist/particles/particleCurves.js.map +0 -1
- package/dist/particles/particleSampling.js.map +0 -1
- package/dist/physics/Body.js.map +0 -1
- package/dist/physics/BroadPhase.js.map +0 -1
- package/dist/physics/Contact.js.map +0 -1
- package/dist/physics/ContactSolver.js.map +0 -1
- package/dist/physics/PhysicsWorld.js.map +0 -1
- package/dist/physics/SpatialHash.js.map +0 -1
- package/dist/physics/collide.js.map +0 -1
- package/dist/physics/collidePolygon.js.map +0 -1
- package/dist/physics/contactReport.js.map +0 -1
- package/dist/physics/drawColliders.js.map +0 -1
- package/dist/physics/physicsSystem.js.map +0 -1
- package/dist/physics/polygon.js.map +0 -1
- package/dist/physics/raycast.js.map +0 -1
- package/dist/physics/syncToBody.js.map +0 -1
- package/dist/physics/tileBodies.js.map +0 -1
- package/dist/physics/types.js.map +0 -1
- package/dist/pixel/Darkness.js.map +0 -1
- package/dist/pixel/DitherVignette.js.map +0 -1
- package/dist/pixel/Evaporation.js.map +0 -1
- package/dist/pixel/NightShade.js.map +0 -1
- package/dist/pixel/PixelLayer.js.map +0 -1
- package/dist/pixel/SwayProp.js.map +0 -1
- package/dist/pixel/lights.js.map +0 -1
- package/dist/pixel/nineSlice.js.map +0 -1
- package/dist/pixel/paintLayer.js.map +0 -1
- package/dist/pixel/palette.js.map +0 -1
- package/dist/pixel/pixel.js.map +0 -1
- package/dist/pixel/pixelPaint.js.map +0 -1
- package/dist/pixel/pixelTone.js.map +0 -1
- package/dist/pixel/propKit.js.map +0 -1
- package/dist/pixel/ramp.js.map +0 -1
- package/dist/pixel/selout.js.map +0 -1
- package/dist/pixel/spritePixels.js.map +0 -1
- package/dist/pixel/swayRig.js.map +0 -1
- package/dist/pixel/vignetteMask.js.map +0 -1
- package/dist/pixel/weatherArt.js.map +0 -1
- package/dist/pixel.js.map +0 -1
- package/dist/platform/touch.js.map +0 -1
- package/dist/postfx/BloomFilter.js.map +0 -1
- package/dist/postfx/ChromaticAberrationFilter.js.map +0 -1
- package/dist/postfx/ColorAdjustFilter.js.map +0 -1
- package/dist/postfx/CrtFilter.js.map +0 -1
- package/dist/postfx/PixelateFilter.js.map +0 -1
- package/dist/postfx/PostFx.js.map +0 -1
- package/dist/postfx/ShockwaveFilter.js.map +0 -1
- package/dist/postfx/VignetteFilter.js.map +0 -1
- package/dist/postfx/fxAnimator.js.map +0 -1
- package/dist/postfx/fxShader.js.map +0 -1
- package/dist/postfx.js.map +0 -1
- package/dist/react/ChoiceDialog.js.map +0 -1
- package/dist/react/ConfirmDialog.js.map +0 -1
- package/dist/react/Glyph.js.map +0 -1
- package/dist/react/Modal.js.map +0 -1
- package/dist/react/Panel.js.map +0 -1
- package/dist/react/PixelImage.js.map +0 -1
- package/dist/react/Select.js.map +0 -1
- package/dist/react/Slider.js.map +0 -1
- package/dist/react/SplitPane.js.map +0 -1
- package/dist/react/TabStrip.js.map +0 -1
- package/dist/react/TitleTips.js.map +0 -1
- package/dist/react/Tooltip.js.map +0 -1
- package/dist/react/UiProvider.js.map +0 -1
- package/dist/react/baseCss.js.map +0 -1
- package/dist/react/choiceStore.js.map +0 -1
- package/dist/react/classNames.js.map +0 -1
- package/dist/react/confirmStore.js.map +0 -1
- package/dist/react/labels.js.map +0 -1
- package/dist/react/placement.js.map +0 -1
- package/dist/react/useFillSheet.js.map +0 -1
- package/dist/react/useFitToViewport.js.map +0 -1
- package/dist/react/usePicked.js.map +0 -1
- package/dist/react/useStore.js.map +0 -1
- package/dist/react/useViewport.js.map +0 -1
- package/dist/react.js.map +0 -1
- package/dist/rig/PosePlayer.js.map +0 -1
- package/dist/rig/RigView.js.map +0 -1
- package/dist/rig/Skeleton.js.map +0 -1
- package/dist/rig/humanoid.js.map +0 -1
- package/dist/rig/humanoid.json.js.map +0 -1
- package/dist/rig/humanoidPoses.js.map +0 -1
- package/dist/rig/poseMath.js.map +0 -1
- package/dist/rig/poses.json.js.map +0 -1
- package/dist/save/Autosaver.js.map +0 -1
- package/dist/save/MemoryBackend.js.map +0 -1
- package/dist/save/SaveStore.js.map +0 -1
- package/dist/save/WebStorageBackend.js.map +0 -1
- package/dist/save/checksum.js.map +0 -1
- package/dist/save/migrateSave.js.map +0 -1
- package/dist/settings.js.map +0 -1
- package/dist/tilemap/TilemapView.js.map +0 -1
- package/dist/tilemap/collision.js.map +0 -1
- package/dist/tilemap/tiled.js.map +0 -1
- package/dist/transitions/CrossfadeTransition.js.map +0 -1
- package/dist/transitions/DitherWipeTransition.js.map +0 -1
- package/dist/transitions/FadeTransition.js.map +0 -1
- package/dist/transitions/Letterbox.js.map +0 -1
- package/dist/transitions/ditherMask.js.map +0 -1
- package/dist/transitions/transitionTo.js.map +0 -1
- package/dist/transitions/tweenDone.js.map +0 -1
- package/dist/ui/Bar.js.map +0 -1
- package/dist/ui/Button.js.map +0 -1
- package/dist/ui/Dialog.js.map +0 -1
- package/dist/ui/FocusManager.js.map +0 -1
- package/dist/ui/Label.js.map +0 -1
- package/dist/ui/List.js.map +0 -1
- package/dist/ui/Panel.js.map +0 -1
- package/dist/ui/ScrollView.js.map +0 -1
- package/dist/ui/Slider.js.map +0 -1
- package/dist/ui/Stack.js.map +0 -1
- package/dist/ui/Toggle.js.map +0 -1
- package/dist/ui/UiHost.js.map +0 -1
- package/dist/ui/UiPointerGate.js.map +0 -1
- package/dist/ui/UiRoot.js.map +0 -1
- package/dist/ui/Widget.js.map +0 -1
- package/dist/ui/dom/DomOverlay.js.map +0 -1
- package/dist/ui/dom/DomWorldAnchors.js.map +0 -1
- package/dist/ui/dom/InputShield.js.map +0 -1
- package/dist/ui/dom/createStore.js.map +0 -1
- package/dist/ui/dom/shieldDecision.js.map +0 -1
- package/dist/ui/dom/worldToScreen.js.map +0 -1
- package/dist/ui/layout/anchor.js.map +0 -1
- package/dist/ui/layout/barDrain.js.map +0 -1
- package/dist/ui/layout/fitToViewport.js.map +0 -1
- package/dist/ui/layout/focusNav.js.map +0 -1
- package/dist/ui/layout/geometry.js.map +0 -1
- package/dist/ui/layout/listWidth.js.map +0 -1
- package/dist/ui/layout/placeTooltip.js.map +0 -1
- package/dist/ui/layout/scroll.js.map +0 -1
- package/dist/ui/layout/slider.js.map +0 -1
- package/dist/ui/layout/stack.js.map +0 -1
- package/dist/ui/layout/wrapRow.js.map +0 -1
- package/dist/ui.js.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Container as
|
|
2
|
-
import { tileAt as
|
|
3
|
-
let
|
|
4
|
-
class
|
|
1
|
+
import { Container as C, Sprite as F } from "pixi.js";
|
|
2
|
+
import { tileAt as I, tileRect as T, FLIP_D as P, FLIP_H as H, FLIP_V as S } from "./tiled.js";
|
|
3
|
+
let V = 0;
|
|
4
|
+
class _ {
|
|
5
5
|
constructor(s, i, e = {}) {
|
|
6
6
|
this.stage = s, this.map = i;
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
for (let
|
|
12
|
-
for (let
|
|
13
|
-
const
|
|
14
|
-
this.paintChunk(t,
|
|
7
|
+
const l = this.textureFor = e.textureFor ?? ((t) => t.name), h = this.chunkTiles = Math.max(1, e.chunkTiles ?? 32), o = e.baseDepth ?? -1e6, f = e.layers ? new Set(e.layers) : null, n = i.layers.filter((t) => t.kind === "tiles" && (f ? f.has(t.name) : t.visible)), c = e.parent ?? s.world;
|
|
8
|
+
this.originX = e.x ?? 0, this.originY = e.y ?? 0, n.forEach((t, x) => {
|
|
9
|
+
const w = typeof t.properties.depth == "number" ? t.properties.depth : o + x, r = new C();
|
|
10
|
+
r.zIndex = w, r.sortableChildren = !0, r.alpha = t.opacity, r.position.set(this.originX + t.offsetX, this.originY + t.offsetY), this.layers.set(t.name, r), this.drawn.set(t.name, t), c.addChild(r);
|
|
11
|
+
for (let d = 0; d < i.height; d += h)
|
|
12
|
+
for (let p = 0; p < i.width; p += h) {
|
|
13
|
+
const u = Math.min(h, i.width - p), m = Math.min(h, i.height - d);
|
|
14
|
+
this.paintChunk(t, r, p, d, u, m, l);
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
}
|
|
@@ -20,13 +20,38 @@ class T {
|
|
|
20
20
|
/** One container per drawn tile layer, by name, each at its own depth among the bodies. */
|
|
21
21
|
layers = /* @__PURE__ */ new Map();
|
|
22
22
|
chunks = [];
|
|
23
|
-
id =
|
|
23
|
+
id = V++;
|
|
24
|
+
chunkTiles;
|
|
25
|
+
textureFor;
|
|
26
|
+
drawn = /* @__PURE__ */ new Map();
|
|
27
|
+
originX;
|
|
28
|
+
originY;
|
|
24
29
|
/** Shows only the chunks in the camera's view (plus a margin in world px). Call once a frame. */
|
|
25
30
|
update(s = 32) {
|
|
26
31
|
const i = this.stage.cameras.main.worldView;
|
|
27
32
|
for (const e of this.chunks)
|
|
28
33
|
e.sprite.visible = e.x < i.right + s && e.x + e.w > i.x - s && e.y < i.bottom + s && e.y + e.h > i.y - s;
|
|
29
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Repaints the chunks holding these cells (row-major indices) of a drawn layer, after its `data` changed: a door
|
|
37
|
+
* opening, a wall dug out, a cell autotiled again (`updateAutotile` returns exactly the indices to pass). Costs one
|
|
38
|
+
* chunk's painting per chunk touched, so keep it out of every frame.
|
|
39
|
+
*/
|
|
40
|
+
refreshTiles(s, i) {
|
|
41
|
+
const e = this.drawn.get(s), l = this.layers.get(s);
|
|
42
|
+
if (!e || !l) return;
|
|
43
|
+
const { map: h, chunkTiles: o } = this, f = /* @__PURE__ */ new Set();
|
|
44
|
+
for (const n of i)
|
|
45
|
+
n < 0 || n >= h.width * h.height || f.add(`${Math.floor(n % h.width / o) * o},${Math.floor(Math.floor(n / h.width) / o) * o}`);
|
|
46
|
+
for (const n of f) {
|
|
47
|
+
const [c, t] = n.split(",").map(Number), x = `tilemap:${this.id}:${e.name}:${c},${t}`, w = this.chunks.findIndex((r) => r.key === x);
|
|
48
|
+
if (w >= 0) {
|
|
49
|
+
const [r] = this.chunks.splice(w, 1);
|
|
50
|
+
r.sprite.destroy(), this.stage.textures.remove(x);
|
|
51
|
+
}
|
|
52
|
+
this.paintChunk(e, l, c, t, Math.min(o, h.width - c), Math.min(o, h.height - t), this.textureFor);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
30
55
|
/** World size of the map in px. */
|
|
31
56
|
get widthPx() {
|
|
32
57
|
return this.map.width * this.map.tileWidth;
|
|
@@ -40,30 +65,29 @@ class T {
|
|
|
40
65
|
for (const s of this.layers.values()) s.destroy({ children: !0 });
|
|
41
66
|
this.layers.clear();
|
|
42
67
|
}
|
|
43
|
-
paintChunk(s, i, e,
|
|
44
|
-
const { map:
|
|
45
|
-
let
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
for (let
|
|
49
|
-
for (let
|
|
50
|
-
const
|
|
51
|
-
if (!
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
54
|
-
const
|
|
55
|
-
|
|
68
|
+
paintChunk(s, i, e, l, h, o, f) {
|
|
69
|
+
const { map: n } = this, c = n.tileWidth, t = n.tileHeight;
|
|
70
|
+
let x = !1;
|
|
71
|
+
const w = `tilemap:${this.id}:${s.name}:${e},${l}`, d = Math.max(t, ...n.tilesets.map((g) => g.tileHeight)) - t, p = this.stage.textures.createCanvas(w, h * c, o * t + d), u = p.context;
|
|
72
|
+
u.imageSmoothingEnabled = !1;
|
|
73
|
+
for (let g = 0; g < o; g++)
|
|
74
|
+
for (let y = 0; y < h; y++) {
|
|
75
|
+
const M = s.data[(l + g) * n.width + (e + y)], k = I(n, M);
|
|
76
|
+
if (!k) continue;
|
|
77
|
+
const $ = this.stage.textures.exists(f(k.tileset)) ? this.stage.textures.get(f(k.tileset)).source.resource : null;
|
|
78
|
+
if (!$) continue;
|
|
79
|
+
const a = T(k.tileset, k.local), b = y * c, v = d + (g + 1) * t - a.h;
|
|
80
|
+
u.save(), u.translate(b + a.w / 2, v + a.h / 2), M & P && u.transform(0, 1, 1, 0, 0, 0), u.scale(M & H ? -1 : 1, M & S ? -1 : 1), u.drawImage($, a.x, a.y, a.w, a.h, -a.w / 2, -a.h / 2, a.w, a.h), u.restore(), x = !0;
|
|
56
81
|
}
|
|
57
|
-
if (!
|
|
58
|
-
this.stage.textures.remove(
|
|
82
|
+
if (!x) {
|
|
83
|
+
this.stage.textures.remove(w);
|
|
59
84
|
return;
|
|
60
85
|
}
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
|
|
86
|
+
p.refresh();
|
|
87
|
+
const m = new F(p.whole);
|
|
88
|
+
m.position.set(e * c, l * t - d), m.zIndex = l * n.width + e, i.addChild(m), this.chunks.push({ sprite: m, x: m.x + i.x, y: m.y + i.y, w: h * c, h: o * t + d, key: w });
|
|
64
89
|
}
|
|
65
90
|
}
|
|
66
91
|
export {
|
|
67
|
-
|
|
92
|
+
_ as TilemapView
|
|
68
93
|
};
|
|
69
|
-
//# sourceMappingURL=TilemapView.js.map
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
const G = 1, d = 2, m = 4, A = 8, j = 1, T = 2, U = 4, v = 8, I = 16, F = 32, H = 64, K = 128;
|
|
2
|
+
function f(t) {
|
|
3
|
+
let n = t & 85;
|
|
4
|
+
return t & 2 && t & 1 && t & 4 && (n |= 2), t & 8 && t & 16 && t & 4 && (n |= 8), t & 32 && t & 16 && t & 64 && (n |= 32), t & 128 && t & 1 && t & 64 && (n |= 128), n;
|
|
5
|
+
}
|
|
6
|
+
const S = (() => {
|
|
7
|
+
const t = /* @__PURE__ */ new Set();
|
|
8
|
+
for (let n = 0; n < 256; n++) t.add(f(n));
|
|
9
|
+
return [...t].sort((n, e) => n - e);
|
|
10
|
+
})(), w = new Map(S.map((t, n) => [t, n]));
|
|
11
|
+
function R(t) {
|
|
12
|
+
return w.get(f(t));
|
|
13
|
+
}
|
|
14
|
+
const N = [
|
|
15
|
+
[0, -1, 1],
|
|
16
|
+
[1, -1, 2],
|
|
17
|
+
[1, 0, 4],
|
|
18
|
+
[1, 1, 8],
|
|
19
|
+
[0, 1, 16],
|
|
20
|
+
[-1, 1, 32],
|
|
21
|
+
[-1, 0, 64],
|
|
22
|
+
[-1, -1, 128]
|
|
23
|
+
];
|
|
24
|
+
function _(t, n, e, o, B) {
|
|
25
|
+
if (e < 0 || o < 0 || e >= t.width || o >= t.height) return (B.edge ?? "same") === "same";
|
|
26
|
+
const c = t.cells[o * t.width + e];
|
|
27
|
+
return B.joins ? B.joins(n, c) : c === n;
|
|
28
|
+
}
|
|
29
|
+
function a(t, n, e, o = {}) {
|
|
30
|
+
const B = t.cells[e * t.width + n];
|
|
31
|
+
return (_(t, B, n, e - 1, o) ? 1 : 0) | (_(t, B, n + 1, e, o) ? 2 : 0) | (_(t, B, n, e + 1, o) ? 4 : 0) | (_(t, B, n - 1, e, o) ? 8 : 0);
|
|
32
|
+
}
|
|
33
|
+
function W(t, n, e, o = {}) {
|
|
34
|
+
const B = t.cells[e * t.width + n];
|
|
35
|
+
let c = 0;
|
|
36
|
+
for (const [l, u, s] of N) _(t, B, n + l, e + u, o) && (c |= s);
|
|
37
|
+
return f(c);
|
|
38
|
+
}
|
|
39
|
+
function b(t, n) {
|
|
40
|
+
let e = Math.imul(t, 668265261) ^ Math.imul(n, 374761393);
|
|
41
|
+
return e ^= e >>> 15, e = Math.imul(e, 739982445), (e ^ e >>> 12) >>> 0;
|
|
42
|
+
}
|
|
43
|
+
const p = { edges: 15, blob: 255 }, h = /* @__PURE__ */ new WeakMap();
|
|
44
|
+
function D(t) {
|
|
45
|
+
let n = h.get(t);
|
|
46
|
+
if (n) return n;
|
|
47
|
+
n = /* @__PURE__ */ new Map();
|
|
48
|
+
for (const e of t.rules) {
|
|
49
|
+
const o = e.connectsTo ? new Set(e.connectsTo) : null, B = { edge: t.edge ?? "same" };
|
|
50
|
+
o && (B.joins = (c, l) => l === c || o.has(l)), n.set(e.terrain, { rule: e, options: B });
|
|
51
|
+
}
|
|
52
|
+
return h.set(t, n), n;
|
|
53
|
+
}
|
|
54
|
+
function E(t, n, e) {
|
|
55
|
+
return t === void 0 || typeof t == "number" ? t : t.length ? t[b(n, e) % t.length] : void 0;
|
|
56
|
+
}
|
|
57
|
+
function r(t, n, e, o) {
|
|
58
|
+
const B = D(n).get(t.cells[o * t.width + e]);
|
|
59
|
+
if (!B) return n.empty ?? 0;
|
|
60
|
+
const c = B.rule.mode ?? "blob", l = c === "blob" ? W(t, e, o, B.options) : a(t, e, o, B.options), { tiles: u } = B.rule;
|
|
61
|
+
return typeof u == "function" ? u(l, e, o) : E(u[l], e, o) ?? B.rule.fallback ?? E(u[p[c]], e, o) ?? n.empty ?? 0;
|
|
62
|
+
}
|
|
63
|
+
function X(t, n, e = new Uint32Array(t.width * t.height)) {
|
|
64
|
+
for (let o = 0; o < t.height; o++) for (let B = 0; B < t.width; B++) e[o * t.width + B] = r(t, n, B, o);
|
|
65
|
+
return e;
|
|
66
|
+
}
|
|
67
|
+
function M(t, n, e, o, B) {
|
|
68
|
+
const c = [];
|
|
69
|
+
for (let l = -1; l <= 1; l++)
|
|
70
|
+
for (let u = -1; u <= 1; u++) {
|
|
71
|
+
const s = o + u, i = B + l;
|
|
72
|
+
if (s < 0 || i < 0 || s >= t.width || i >= t.height) continue;
|
|
73
|
+
const L = i * t.width + s, O = r(t, n, s, i);
|
|
74
|
+
e[L] !== O && (e[L] = O, c.push(L));
|
|
75
|
+
}
|
|
76
|
+
return c;
|
|
77
|
+
}
|
|
78
|
+
function q(t, n, e, o, B, c) {
|
|
79
|
+
return o < 0 || B < 0 || o >= t.width || B >= t.height ? [] : (t.cells[B * t.width + o] = c, M(t, n, e, o, B));
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
S as BLOB47_MASKS,
|
|
83
|
+
U as BLOB_E,
|
|
84
|
+
j as BLOB_N,
|
|
85
|
+
T as BLOB_NE,
|
|
86
|
+
K as BLOB_NW,
|
|
87
|
+
I as BLOB_S,
|
|
88
|
+
v as BLOB_SE,
|
|
89
|
+
F as BLOB_SW,
|
|
90
|
+
H as BLOB_W,
|
|
91
|
+
d as EDGE_E,
|
|
92
|
+
G as EDGE_N,
|
|
93
|
+
m as EDGE_S,
|
|
94
|
+
A as EDGE_W,
|
|
95
|
+
X as autotile,
|
|
96
|
+
r as autotileAt,
|
|
97
|
+
R as blob47Index,
|
|
98
|
+
W as blobMask,
|
|
99
|
+
a as edgeMask,
|
|
100
|
+
q as paintTerrain,
|
|
101
|
+
f as reduceBlobMask,
|
|
102
|
+
M as updateAutotile
|
|
103
|
+
};
|
|
@@ -1,25 +1,35 @@
|
|
|
1
|
-
import { createCollisionGrid as
|
|
2
|
-
import { gidOf as
|
|
3
|
-
function
|
|
4
|
-
if (
|
|
5
|
-
const
|
|
6
|
-
if (typeof
|
|
7
|
-
const
|
|
8
|
-
if (!
|
|
9
|
-
for (let
|
|
1
|
+
import { createCollisionGrid as h } from "../net/movement.js";
|
|
2
|
+
import { gidOf as u, tileAt as a } from "./tiled.js";
|
|
3
|
+
function g(e, l = {}) {
|
|
4
|
+
if (e.tileWidth !== e.tileHeight) throw new Error(`Tiled map: collision needs square tiles, not ${e.tileWidth}x${e.tileHeight}`);
|
|
5
|
+
const n = l.solid ?? (e.layers.some((t) => t.kind === "tiles" && t.name === "collision") ? "collision" : { property: "solid" }), r = e.width * e.height, s = new Uint8Array(r);
|
|
6
|
+
if (typeof n == "string") {
|
|
7
|
+
const t = e.layers.find((i) => i.kind === "tiles" && i.name === n);
|
|
8
|
+
if (!t || t.kind !== "tiles") throw new Error(`Tiled map: no tile layer named "${n}"`);
|
|
9
|
+
for (let i = 0; i < r; i++) u(t.data[i]) !== 0 && (s[i] = 1);
|
|
10
10
|
} else
|
|
11
|
-
for (const
|
|
12
|
-
if (
|
|
13
|
-
for (let
|
|
14
|
-
const
|
|
15
|
-
|
|
11
|
+
for (const t of e.layers)
|
|
12
|
+
if (t.kind === "tiles")
|
|
13
|
+
for (let i = 0; i < r; i++) {
|
|
14
|
+
const f = a(e, t.data[i]);
|
|
15
|
+
f && f.tileset.tileProperties.get(f.local)?.[n.property] === !0 && (s[i] = 1);
|
|
16
16
|
}
|
|
17
17
|
let d = "";
|
|
18
|
-
for (let
|
|
19
|
-
const { solid:
|
|
20
|
-
return
|
|
18
|
+
for (let t = 0; t < r; t++) d += s[t] ? "1" : "0";
|
|
19
|
+
const { solid: c, ...o } = l;
|
|
20
|
+
return h(e.width, e.height, e.tileWidth, d, o);
|
|
21
|
+
}
|
|
22
|
+
function k(e, l, n = {}) {
|
|
23
|
+
const r = typeof l == "function" ? l : (c) => l.includes(c), s = /* @__PURE__ */ new Map();
|
|
24
|
+
let d = "";
|
|
25
|
+
for (let c = 0; c < e.values.length; c++) {
|
|
26
|
+
const o = e.values[c];
|
|
27
|
+
let t = s.get(o);
|
|
28
|
+
t === void 0 && s.set(o, t = o !== 0 && r(o, e.names.get(o))), d += t ? "1" : "0";
|
|
29
|
+
}
|
|
30
|
+
return h(e.width, e.height, e.gridSize, d, n);
|
|
21
31
|
}
|
|
22
32
|
export {
|
|
23
|
-
|
|
33
|
+
k as collisionFromIntGrid,
|
|
34
|
+
g as collisionFromTiled
|
|
24
35
|
};
|
|
25
|
-
//# sourceMappingURL=collision.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function o(i, t) {
|
|
2
|
+
return i.levels.find((e) => e.identifier === t || e.iid === t);
|
|
3
|
+
}
|
|
4
|
+
function l(i, t, e, r) {
|
|
5
|
+
for (const n of i)
|
|
6
|
+
if (!(r !== void 0 && n.worldDepth !== r) && t >= n.worldX && e >= n.worldY && t < n.worldX + n.pxWidth && e < n.worldY + n.pxHeight)
|
|
7
|
+
return n;
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
function u(i, t, e) {
|
|
11
|
+
return t < 0 || e < 0 || t >= i.width || e >= i.height ? 0 : i.values[e * i.width + t];
|
|
12
|
+
}
|
|
13
|
+
function f(i, t) {
|
|
14
|
+
return t === void 0 ? i.entities : i.entities.filter((e) => e.identifier === t);
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
f as entitiesOf,
|
|
18
|
+
u as intGridAt,
|
|
19
|
+
l as levelAt,
|
|
20
|
+
o as levelByName
|
|
21
|
+
};
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { FLIP_H as z, FLIP_V as M } from "./tiled.js";
|
|
2
|
+
class G extends Error {
|
|
3
|
+
constructor(n) {
|
|
4
|
+
super(`LDtk project: ${n}`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
function c(e, n) {
|
|
8
|
+
if (typeof e != "number" || !Number.isFinite(e)) throw new G(`${n} must be a number`);
|
|
9
|
+
return e;
|
|
10
|
+
}
|
|
11
|
+
function L(e) {
|
|
12
|
+
const n = {};
|
|
13
|
+
if (Array.isArray(e))
|
|
14
|
+
for (const r of e) r && typeof r.__identifier == "string" && (n[r.__identifier] = r.__value ?? null);
|
|
15
|
+
return n;
|
|
16
|
+
}
|
|
17
|
+
function N(e) {
|
|
18
|
+
const n = {};
|
|
19
|
+
for (const [r, o] of Object.entries(e)) (typeof o == "string" || typeof o == "number" || typeof o == "boolean") && (n[r] = o);
|
|
20
|
+
return n;
|
|
21
|
+
}
|
|
22
|
+
function W(e) {
|
|
23
|
+
return Array.isArray(e.worlds) && e.worlds.length ? e.worlds : [{ identifier: "World", iid: "", worldLayout: e.worldLayout, worldGridWidth: e.worldGridWidth, worldGridHeight: e.worldGridHeight, levels: e.levels ?? [] }];
|
|
24
|
+
}
|
|
25
|
+
function R(e) {
|
|
26
|
+
const n = e;
|
|
27
|
+
if (!n || typeof n != "object") return [];
|
|
28
|
+
const r = [];
|
|
29
|
+
for (const o of W(n)) for (const t of o.levels ?? []) typeof t.externalRelPath == "string" && !Array.isArray(t.layerInstances) && r.push(t.externalRelPath);
|
|
30
|
+
return r;
|
|
31
|
+
}
|
|
32
|
+
function A(e) {
|
|
33
|
+
const n = [], r = /* @__PURE__ */ new Map();
|
|
34
|
+
let o = 1;
|
|
35
|
+
for (const t of e?.tilesets ?? []) {
|
|
36
|
+
if (typeof t.relPath != "string") continue;
|
|
37
|
+
const a = c(t.tileGridSize, `tileset "${t.identifier}" tileGridSize`), d = c(t.__cWid, `tileset "${t.identifier}" __cWid`), s = d * c(t.__cHei, `tileset "${t.identifier}" __cHei`), l = /* @__PURE__ */ new Map(), p = (i) => l.get(i) ?? (l.set(i, {}), l.get(i));
|
|
38
|
+
for (const i of t.customData ?? []) typeof i.tileId == "number" && typeof i.data == "string" && (p(i.tileId).data = i.data);
|
|
39
|
+
for (const i of t.enumTags ?? []) for (const g of i.tileIds ?? []) typeof i.enumValueId == "string" && (p(g)[i.enumValueId] = !0);
|
|
40
|
+
const u = {
|
|
41
|
+
name: String(t.identifier ?? `tileset${t.uid}`),
|
|
42
|
+
firstGid: o,
|
|
43
|
+
image: t.relPath,
|
|
44
|
+
imageWidth: c(t.pxWid, `tileset "${t.identifier}" pxWid`),
|
|
45
|
+
imageHeight: c(t.pxHei, `tileset "${t.identifier}" pxHei`),
|
|
46
|
+
tileWidth: a,
|
|
47
|
+
tileHeight: a,
|
|
48
|
+
columns: d,
|
|
49
|
+
tileCount: s,
|
|
50
|
+
margin: Number(t.padding ?? 0),
|
|
51
|
+
spacing: Number(t.spacing ?? 0),
|
|
52
|
+
tileProperties: l,
|
|
53
|
+
animations: /* @__PURE__ */ new Map(),
|
|
54
|
+
properties: {}
|
|
55
|
+
};
|
|
56
|
+
n.push(u), r.set(c(t.uid, "tileset uid"), u), o += s;
|
|
57
|
+
}
|
|
58
|
+
return { tilesets: n, byUid: r };
|
|
59
|
+
}
|
|
60
|
+
function T(e, n, r, o, t, a, d) {
|
|
61
|
+
const s = [], l = (u) => {
|
|
62
|
+
for (; s.length <= u; )
|
|
63
|
+
s.push({
|
|
64
|
+
kind: "tiles",
|
|
65
|
+
name: s.length ? `${n}#${s.length}` : n,
|
|
66
|
+
data: new Uint32Array(t * a),
|
|
67
|
+
visible: e.visible !== !1,
|
|
68
|
+
opacity: typeof e.__opacity == "number" ? e.__opacity : 1,
|
|
69
|
+
offsetX: Number(e.__pxTotalOffsetX ?? 0),
|
|
70
|
+
offsetY: Number(e.__pxTotalOffsetY ?? 0),
|
|
71
|
+
properties: {}
|
|
72
|
+
});
|
|
73
|
+
return s[u];
|
|
74
|
+
}, p = new Uint8Array(t * a);
|
|
75
|
+
for (const u of r) {
|
|
76
|
+
const i = Math.floor(c(u.px?.[0], `layer "${n}" tile px`) / d), g = Math.floor(c(u.px?.[1], `layer "${n}" tile px`) / d);
|
|
77
|
+
if (i < 0 || g < 0 || i >= t || g >= a) continue;
|
|
78
|
+
const h = c(u.t, `layer "${n}" tile id`);
|
|
79
|
+
if (h < 0 || h >= o.tileCount) continue;
|
|
80
|
+
const m = g * t + i, b = Number(u.f ?? 0), y = (o.firstGid + h | (b & 1 ? z : 0) | (b & 2 ? M : 0)) >>> 0;
|
|
81
|
+
l(p[m]).data[m] = y, p[m] = Math.min(255, p[m] + 1);
|
|
82
|
+
}
|
|
83
|
+
return s.length || l(0), s;
|
|
84
|
+
}
|
|
85
|
+
function X(e, n) {
|
|
86
|
+
const r = /* @__PURE__ */ new Map(), o = (e?.layers ?? []).find((t) => t.uid === n);
|
|
87
|
+
for (const t of o?.intGridValues ?? []) typeof t.value == "number" && typeof t.identifier == "string" && t.identifier && r.set(t.value, t.identifier);
|
|
88
|
+
return r;
|
|
89
|
+
}
|
|
90
|
+
function Y(e, n, r, o, t) {
|
|
91
|
+
const a = n.filter((i) => i.__type !== "Entities"), d = a.length ? c(a[0].__gridSize, "layer __gridSize") : t;
|
|
92
|
+
for (const i of a)
|
|
93
|
+
if (i.__gridSize !== d) throw new G(`level "${e.identifier}" layer "${i.__identifier}" has a ${i.__gridSize} px grid, not ${d}: every tile and IntGrid layer of a level must share one grid`);
|
|
94
|
+
const s = a.length ? Math.max(...a.map((i) => c(i.__cWid, "layer __cWid"))) : Math.ceil(e.pxWidth / d), l = a.length ? Math.max(...a.map((i) => c(i.__cHei, "layer __cHei"))) : Math.ceil(e.pxHeight / d), p = [];
|
|
95
|
+
let u = 1;
|
|
96
|
+
for (const i of [...n].reverse()) {
|
|
97
|
+
const g = String(i.__identifier ?? ""), h = i.__type, m = Number(i.__pxTotalOffsetX ?? 0), b = Number(i.__pxTotalOffsetY ?? 0);
|
|
98
|
+
if (h === "IntGrid") {
|
|
99
|
+
const y = c(i.__cWid, "layer __cWid"), f = c(i.__cHei, "layer __cHei"), _ = i.intGridCsv;
|
|
100
|
+
if (!Array.isArray(_) || _.length !== y * f) throw new G(`layer "${g}" must hold ${y * f} IntGrid cells`);
|
|
101
|
+
const w = { name: g, width: y, height: f, gridSize: d, values: Int32Array.from(_), names: X(r, i.layerDefUid), offsetX: m, offsetY: b };
|
|
102
|
+
e.intGrids.set(g, w);
|
|
103
|
+
}
|
|
104
|
+
if (h === "IntGrid" || h === "AutoLayer" || h === "Tiles") {
|
|
105
|
+
const y = h === "Tiles" ? i.gridTiles ?? [] : i.autoLayerTiles ?? [], f = i.overrideTilesetUid ?? i.__tilesetDefUid, _ = typeof f == "number" ? o.get(f) : void 0;
|
|
106
|
+
_ && (h !== "IntGrid" || y.length) && p.push(...T(i, g, y, _, s, l, d));
|
|
107
|
+
} else if (h === "Entities") {
|
|
108
|
+
const y = [];
|
|
109
|
+
for (const f of i.entityInstances ?? []) {
|
|
110
|
+
const _ = L(f.fieldInstances), w = Number(f.width ?? 0), x = Number(f.height ?? 0), $ = Number(f.__pivot?.[0] ?? 0), I = Number(f.__pivot?.[1] ?? 0), v = c(f.px?.[0], `entity "${f.__identifier}" px`) + m, H = c(f.px?.[1], `entity "${f.__identifier}" px`) + b, S = {
|
|
111
|
+
iid: String(f.iid ?? ""),
|
|
112
|
+
identifier: String(f.__identifier ?? ""),
|
|
113
|
+
x: v,
|
|
114
|
+
y: H,
|
|
115
|
+
width: w,
|
|
116
|
+
height: x,
|
|
117
|
+
pivotX: $,
|
|
118
|
+
pivotY: I,
|
|
119
|
+
cx: Number(f.__grid?.[0] ?? Math.floor(v / d)),
|
|
120
|
+
cy: Number(f.__grid?.[1] ?? Math.floor(H / d)),
|
|
121
|
+
tags: Array.isArray(f.__tags) ? f.__tags.map(String) : [],
|
|
122
|
+
fields: _,
|
|
123
|
+
layer: g
|
|
124
|
+
};
|
|
125
|
+
e.entities.push(S), y.push({ id: u++, name: S.identifier, type: S.identifier, x: v - $ * w, y: H - I * x, width: w, height: x, rotation: 0, point: w === 0 && x === 0, ellipse: !1, properties: N(_) });
|
|
126
|
+
}
|
|
127
|
+
p.push({ kind: "objects", name: g, objects: y, visible: i.visible !== !1, properties: {} });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
e.map.width = s, e.map.height = l, e.map.tileWidth = d, e.map.tileHeight = d, e.map.layers = p;
|
|
131
|
+
}
|
|
132
|
+
function P(e, n, r, o, t) {
|
|
133
|
+
const a = String(e.identifier ?? ""), d = String(e.__bgColor ?? e.bgColor ?? n.bgColor), s = {
|
|
134
|
+
identifier: a,
|
|
135
|
+
iid: String(e.iid ?? ""),
|
|
136
|
+
uid: Number(e.uid ?? 0),
|
|
137
|
+
worldX: Number(e.worldX ?? 0),
|
|
138
|
+
worldY: Number(e.worldY ?? 0),
|
|
139
|
+
worldDepth: Number(e.worldDepth ?? 0),
|
|
140
|
+
pxWidth: c(e.pxWid, `level "${a}" pxWid`),
|
|
141
|
+
pxHeight: c(e.pxHei, `level "${a}" pxHei`),
|
|
142
|
+
bgColor: d,
|
|
143
|
+
fields: L(e.fieldInstances),
|
|
144
|
+
map: { width: 0, height: 0, tileWidth: n.defaultGridSize, tileHeight: n.defaultGridSize, layers: [], tilesets: n.tilesets, properties: {}, backgroundColor: d },
|
|
145
|
+
intGrids: /* @__PURE__ */ new Map(),
|
|
146
|
+
entities: [],
|
|
147
|
+
loaded: !1
|
|
148
|
+
};
|
|
149
|
+
typeof e.externalRelPath == "string" && (s.externalRelPath = e.externalRelPath);
|
|
150
|
+
let l = e;
|
|
151
|
+
return !Array.isArray(e.layerInstances) && s.externalRelPath && (l = t(s.externalRelPath)), l && Array.isArray(l.layerInstances) && (s.fields = { ...s.fields, ...L(l.fieldInstances) }, s.map.properties = N(s.fields), Y(s, l.layerInstances, r, o, n.defaultGridSize), s.loaded = !0), s;
|
|
152
|
+
}
|
|
153
|
+
function k(e, n) {
|
|
154
|
+
let r = 0;
|
|
155
|
+
for (const o of e)
|
|
156
|
+
n === "LinearHorizontal" ? (o.worldX = r, o.worldY = 0, r += o.pxWidth) : (o.worldX = 0, o.worldY = r, r += o.pxHeight);
|
|
157
|
+
}
|
|
158
|
+
function j(e, n = {}) {
|
|
159
|
+
const r = e;
|
|
160
|
+
if (!r || typeof r != "object" || !r.defs) throw new G('not an LDtk project (no "defs")');
|
|
161
|
+
const o = n.levels, t = typeof o == "function" ? o : (l) => o?.[l], { tilesets: a, byUid: d } = A(r.defs), s = {
|
|
162
|
+
jsonVersion: String(r.jsonVersion ?? ""),
|
|
163
|
+
defaultGridSize: Number(r.defaultGridSize ?? 16),
|
|
164
|
+
bgColor: String(r.bgColor ?? "#000000"),
|
|
165
|
+
tilesets: a,
|
|
166
|
+
worlds: [],
|
|
167
|
+
levels: []
|
|
168
|
+
};
|
|
169
|
+
for (const l of W(r)) {
|
|
170
|
+
const p = l.worldLayout ?? "Free", u = {
|
|
171
|
+
identifier: String(l.identifier ?? ""),
|
|
172
|
+
iid: String(l.iid ?? ""),
|
|
173
|
+
layout: p,
|
|
174
|
+
gridWidth: Number(l.worldGridWidth ?? 0),
|
|
175
|
+
gridHeight: Number(l.worldGridHeight ?? 0),
|
|
176
|
+
levels: (l.levels ?? []).map((i) => P(i, s, r.defs, d, t))
|
|
177
|
+
};
|
|
178
|
+
(p === "LinearHorizontal" || p === "LinearVertical") && k(u.levels, p), s.worlds.push(u), s.levels.push(...u.levels);
|
|
179
|
+
}
|
|
180
|
+
return s;
|
|
181
|
+
}
|
|
182
|
+
function O(e, n, r, o) {
|
|
183
|
+
const t = n, { byUid: a } = A(t?.defs), d = P({ ...o, worldX: r.worldX, worldY: r.worldY, externalRelPath: r.externalRelPath }, e, t?.defs, a, () => {
|
|
184
|
+
});
|
|
185
|
+
return Object.assign(r, { map: d.map, intGrids: d.intGrids, entities: d.entities, fields: d.fields, loaded: d.loaded }), r;
|
|
186
|
+
}
|
|
187
|
+
export {
|
|
188
|
+
R as ldtkExternalLevels,
|
|
189
|
+
O as loadLdtkLevel,
|
|
190
|
+
j as parseLdtk
|
|
191
|
+
};
|
package/dist/tilemap/tiled.js
CHANGED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ViewRect } from '../../core/Camera.js';
|
|
2
|
+
import type { Stage } from '../../core/Stage.js';
|
|
3
|
+
import { type LifeAir } from './lifeMotion.js';
|
|
4
|
+
export interface BirdsOptions {
|
|
5
|
+
/** Birds in a flock, [least, most]; never more than `maxFlock`. */
|
|
6
|
+
flock: readonly [number, number];
|
|
7
|
+
/** Seconds between flocks, [least, most]. */
|
|
8
|
+
everyS: readonly [number, number];
|
|
9
|
+
/** The two frames, seen from above: wings raised (a V), then the downstroke. */
|
|
10
|
+
frames: readonly [string, string];
|
|
11
|
+
/** A small shadow on the ground far below each bird: it is what tells the eye how high they are. */
|
|
12
|
+
shadow?: string;
|
|
13
|
+
/** The pool's size (default 6). */
|
|
14
|
+
maxFlock?: number;
|
|
15
|
+
/** Depth of the birds (default 950_000: over every prop and body, under the names). */
|
|
16
|
+
depth?: number;
|
|
17
|
+
/** Depth of their shadows (default -999_980: on the ground, under the bodies). */
|
|
18
|
+
shadowDepth?: number;
|
|
19
|
+
/** Past this `night` no flock sets off (default 0.5). */
|
|
20
|
+
maxNight?: number;
|
|
21
|
+
/** The first flock comes this many ms after the first update, [least, most] (default [3000, 9000]). */
|
|
22
|
+
firstMs?: readonly [number, number];
|
|
23
|
+
snap?: boolean;
|
|
24
|
+
random?: () => number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A flock crossing the sky now and then: a few painted birds in a loose V flying straight across the camera's view,
|
|
28
|
+
* wings beating on their own clocks, each with its shadow on the ground below. Not at night.
|
|
29
|
+
*/
|
|
30
|
+
export declare class Birds {
|
|
31
|
+
private readonly options;
|
|
32
|
+
private readonly birds;
|
|
33
|
+
private readonly snap;
|
|
34
|
+
private readonly random;
|
|
35
|
+
private active;
|
|
36
|
+
private nextAt;
|
|
37
|
+
private x;
|
|
38
|
+
private y;
|
|
39
|
+
private vx;
|
|
40
|
+
private vy;
|
|
41
|
+
private altitude;
|
|
42
|
+
constructor(stage: Stage, options: BirdsOptions);
|
|
43
|
+
/** Whether a flock is crossing now. */
|
|
44
|
+
get flying(): boolean;
|
|
45
|
+
update(now: number, dt: number, view: ViewRect, air: LifeAir, enabled?: boolean): void;
|
|
46
|
+
destroy(): void;
|
|
47
|
+
private launch;
|
|
48
|
+
private land;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=Birds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Birds.d.ts","sourceRoot":"","sources":["../../../../src/ambient/life/Birds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,6CAA6C;IAC7C,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,gFAAgF;IAChF,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uGAAuG;IACvG,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAUD;;;GAGG;AACH,qBAAa,KAAK;IAcd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,CAAC,CAAK;IACd,OAAO,CAAC,CAAC,CAAK;IACd,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,QAAQ,CAAM;gBAGpB,KAAK,EAAE,KAAK,EACK,OAAO,EAAE,YAAY;IAcxC,uCAAuC;IACvC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,UAAO,GAAG,IAAI;IA4BnF,OAAO,IAAI,IAAI;IASf,OAAO,CAAC,MAAM;IAwBd,OAAO,CAAC,IAAI;CAOb"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ViewRect } from '../../core/Camera.js';
|
|
2
|
+
import type { Stage } from '../../core/Stage.js';
|
|
3
|
+
import type { LifeAir, LifeSource } from './lifeMotion.js';
|
|
4
|
+
export interface ButterfliesOptions {
|
|
5
|
+
count: number;
|
|
6
|
+
/** Each tone's two frames, wings open then shut; butterfly `i` wears `looks[i % looks.length]`. */
|
|
7
|
+
looks: readonly (readonly [open: string, shut: string])[];
|
|
8
|
+
/** A flower patch in view to settle round, or null when none is on screen. */
|
|
9
|
+
home: LifeSource;
|
|
10
|
+
/** Depth in the world layer (default 900_000). */
|
|
11
|
+
depth?: number;
|
|
12
|
+
/** Past this `night` they are gone (default 0.4). */
|
|
13
|
+
maxNight?: number;
|
|
14
|
+
snap?: boolean;
|
|
15
|
+
random?: () => number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Butterflies by day round the flowers on screen: each settles on a patch in view and wanders round it in short
|
|
19
|
+
* jinks, wings opening and shutting on their own beat, bobbing a pixel over the bloom. They leave when the night
|
|
20
|
+
* comes in, and where `home` finds nothing they are simply not drawn.
|
|
21
|
+
*/
|
|
22
|
+
export declare class Butterflies {
|
|
23
|
+
private readonly options;
|
|
24
|
+
private readonly flies;
|
|
25
|
+
private readonly snap;
|
|
26
|
+
private readonly random;
|
|
27
|
+
constructor(stage: Stage, options: ButterfliesOptions);
|
|
28
|
+
update(now: number, dt: number, view: ViewRect, air: LifeAir, enabled?: boolean): void;
|
|
29
|
+
destroy(): void;
|
|
30
|
+
private settle;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=Butterflies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Butterflies.d.ts","sourceRoot":"","sources":["../../../../src/ambient/life/Butterflies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IAC1D,8EAA8E;IAC9E,IAAI,EAAE,UAAU,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAgBD;;;;GAIG;AACH,qBAAa,WAAW;IAOpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAGpC,KAAK,EAAE,KAAK,EACK,OAAO,EAAE,kBAAkB;IAY9C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,UAAO,GAAG,IAAI;IA8BnF,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,MAAM;CAUf"}
|