1681-engine 0.6.0 → 0.6.2

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.
@@ -17,578 +17,584 @@ import { Timeline as Y } from "./core/Timeline.js";
17
17
  import { TimelineBuilder as q } from "./core/TimelineBuilder.js";
18
18
  import { easeByName as X } from "./core/eases.js";
19
19
  import { ObjectFactory as J } from "./core/ObjectFactory.js";
20
- import { Graphics as $ } from "./core/Graphics.js";
21
- import { Image as re } from "./core/Image.js";
22
- import { clearSilhouettes as te, fillSolid as pe, solidSilhouette as me } from "./core/silhouette.js";
23
- import { Group as ie } from "./core/Group.js";
24
- import { blendLayer as le } from "./core/blendLayer.js";
25
- import { Rectangle as ne } from "./core/Rectangle.js";
26
- import { Text as ce } from "./core/Text.js";
27
- import { BitmapLabel as ue, addLabelGlyphs as Se, installLabelFont as Ae } from "./core/BitmapLabel.js";
28
- import { Pointer as Ee } from "./core/Pointer.js";
29
- import { CanvasTexture as _e, TextureRegistry as ge } from "./core/TextureRegistry.js";
30
- import { AtlasBuilder as Pe } from "./core/atlas.js";
31
- import { atlasPageLimit as he, planAtlas as ye } from "./core/atlasPlan.js";
32
- import { AssetLoader as Be, resolveUrl as Re } from "./assets/AssetLoader.js";
33
- import { collectAtlasPages as ke, duplicateFrames as ve, parseAtlas as Ie } from "./assets/textureAtlas.js";
34
- import { Animator as De } from "./anim/Animator.js";
35
- import { clipMarkers as Ge, frameNamed as we, parseAseprite as He } from "./anim/parseAseprite.js";
36
- import { tagDirection as Ke, tagFrames as Ue, tagRepeat as Ve } from "./anim/asepriteTags.js";
37
- import { sliceAt as ze, sliceBorders as qe, sliceNamed as Ze } from "./anim/asepriteSlices.js";
38
- import { addAsepriteTextures as je, loadAseprite as Je } from "./assets/loadAseprite.js";
39
- import { Prepainter as $e } from "./assets/Prepainter.js";
40
- import { workerPainter as rr } from "./assets/workerPainter.js";
41
- import { AnimStateMachine as tr } from "./anim/AnimStateMachine.js";
42
- import { AnimStateComponent as mr, animStateSystem as ar } from "./anim/animStateSystem.js";
43
- import { AnimationComponent as fr, SpriteComponent as lr, animationSystem as xr } from "./anim/animationSystem.js";
44
- import { FLIP_D as sr, FLIP_H as cr, FLIP_V as dr, gidOf as ur, layerByName as Sr, objectsOf as Ar, parseTiled as Tr, tileAt as Er, tileRect as Lr } from "./tilemap/tiled.js";
45
- import { collisionFromIntGrid as gr, collisionFromTiled as Cr } from "./tilemap/collision.js";
46
- import { entitiesOf as Or, intGridAt as hr, levelAt as yr, levelByName as br } from "./tilemap/ldtk.js";
47
- import { ldtkExternalLevels as Rr, loadLdtkLevel as Fr, parseLdtk as kr } from "./tilemap/ldtkParse.js";
48
- import { BLOB47_MASKS as Ir, BLOB_E as Mr, BLOB_N as Dr, BLOB_NE as Nr, BLOB_NW as Gr, BLOB_S as wr, BLOB_SE as Hr, BLOB_SW as Wr, BLOB_W as Kr, EDGE_E as Ur, EDGE_N as Vr, EDGE_S as Yr, EDGE_W as zr, autotile as qr, autotileAt as Zr, blob47Index as Xr, blobMask as jr, edgeMask as Jr, paintTerrain as Qr, reduceBlobMask as $r, updateAutotile as eo } from "./tilemap/autotile.js";
49
- import { TilemapView as oo } from "./tilemap/TilemapView.js";
50
- import { Skeleton as po } from "./rig/Skeleton.js";
51
- import { HUMANOID_RIG as ao } from "./rig/humanoid.js";
52
- import { blendPose as fo, overlay as lo, upperOver as xo } from "./rig/poseMath.js";
53
- import { HUMANOID_CLIPS as so, HUMANOID_POSES as co } from "./rig/humanoidPoses.js";
54
- import { PosePlayer as So } from "./rig/PosePlayer.js";
55
- import { RIG_PARTS as To, RigView as Eo } from "./rig/RigView.js";
56
- import { LightLayer as _o } from "./light/LightLayer.js";
57
- import { HEAVY_FLASH_GAP_MS as Co, RECOIL_MS as Po, hitStopMs as Oo, hurtFlashGapMs as ho, hurtFlashMs as yo, recoilAt as bo, recoilPx as Bo } from "./fx/hitStop.js";
58
- import { FloatingText as Fo } from "./fx/FloatingText.js";
59
- import { inView as vo } from "./fx/viewCull.js";
60
- import { Afterimages as Mo } from "./fx/Afterimages.js";
61
- import { SoundEngine as No, sound as Go } from "./audio/SoundEngine.js";
62
- import { MusicPlayer as Ho, music as Wo } from "./audio/MusicPlayer.js";
63
- import { MusicChannel as Uo } from "./audio/music/MusicChannel.js";
64
- import { elementVolumeLocked as Yo } from "./audio/music/musicVoice.js";
65
- import { registerSounds as qo } from "./audio/soundTable.js";
66
- import { hasTakes as Xo, registerTakes as jo } from "./audio/sampleBank.js";
67
- import { Footsteps as Qo } from "./audio/Footsteps.js";
68
- import { SpatialAudio as et, spatialMix as rt } from "./audio/spatial.js";
69
- import { SYNTH_RATE as tt, renderRecipe as pt } from "./audio/synth.js";
70
- import { Keyboard as at } from "./input/Keyboard.js";
71
- import { Actions as ft, PAD_BUTTONS as lt } from "./input/Actions.js";
72
- import { chordHeld as nt, parseChord as st } from "./input/keyChord.js";
73
- import { aimAxis as dt } from "./input/aimAxis.js";
74
- import { STICK_DEAD_ZONE as St, stickActive as At, stickToAxis as Tt, stickVector as Et } from "./input/stickAxis.js";
75
- import { LongPress as _t } from "./input/longPress.js";
76
- import { AIM_CENTRE as Ct, AIM_EARLY_SLOP as Pt, AIM_PRESS_MS as Ot, AIM_TAP_SLOP as ht, AimGesture as yt, aimPoint as bt, dragSlop as Bt, spotReach as Rt, spotShare as Ft } from "./input/AimGesture.js";
77
- import { LOCK_KEEP_RANGE as vt, LOCK_PICK_CONE as It, LOCK_PICK_RANGE as Mt, TargetLock as Dt, keptTarget as Nt, nearestTarget as Gt, pickTarget as wt } from "./input/TargetLock.js";
78
- import { Keymap as Wt, keyLabel as Kt, keymapStorage as Ut, mergeKeymap as Vt } from "./input/Keymap.js";
79
- import { InputCapture as zt, deviceOf as qt, padLabel as Zt } from "./input/InputCapture.js";
80
- import { InputPlayer as jt, InputRecorder as Jt } from "./input/inputTape.js";
81
- import { isTouchUi as $t, setNativeShell as ep, setTouchOverrideKey as rp } from "./platform/touch.js";
82
- import { onAppResume as tp } from "./platform/appResume.js";
83
- import { timeoutSignal as mp } from "./platform/timeoutSignal.js";
84
- import { rumble as ip, rumblePad as fp, rumbleParams as lp, stopRumble as xp } from "./input/rumble.js";
85
- import { HapticGate as sp, Haptics as cp, vibrate as dp } from "./input/haptics.js";
86
- import { enterFullscreen as Sp, exitFullscreen as Ap, fullscreenSupported as Tp, isFullscreen as Ep, onFullscreenChange as Lp, toggleFullscreen as _p } from "./platform/fullscreen.js";
87
- import { currentOrientationKind as Cp, lockOrientation as Pp, unlockOrientation as Op } from "./platform/orientation.js";
88
- import { followReducedMotion as yp, onReducedMotionChange as bp, prefersReducedMotion as Bp } from "./platform/reducedMotion.js";
89
- import { exitPointerLock as Fp, isPointerLocked as kp, onPointerLockChange as vp, requestPointerLock as Ip } from "./platform/pointerLock.js";
90
- import { detectTouch as Dp } from "./input/touchDetect.js";
91
- import { DayClock as Gp, clockText as wp, mixRgb as Hp, tintNight as Wp } from "./ambient/DayClock.js";
92
- import { hash01 as Up, weatherAt as Vp } from "./ambient/weather.js";
93
- import { WeatherLayer as zp } from "./ambient/WeatherLayer.js";
94
- import { gradeAt as Zp, mixToWhite as Xp } from "./ambient/grade.js";
95
- import { ColorGrade as Jp } from "./ambient/ColorGrade.js";
96
- import { birdFrame as $p, boxInView as em, firefliesOut as rm, fireflyGlow as om, fireflyOffset as tm, flockSlot as pm, pickInView as mm, puffOffset as am, sourceOf as im } from "./ambient/life/lifeMotion.js";
97
- import { Drift as lm } from "./ambient/life/Drift.js";
98
- import { Birds as nm } from "./ambient/life/Birds.js";
99
- import { Butterflies as cm } from "./ambient/life/Butterflies.js";
100
- import { Fireflies as um } from "./ambient/life/Fireflies.js";
101
- import { ChimneySmoke as Am } from "./ambient/life/ChimneySmoke.js";
102
- import { Parallax as Em } from "./parallax/Parallax.js";
103
- import { ParallaxLayer as _m } from "./parallax/ParallaxLayer.js";
104
- import { parallaxOrigin as Cm, placeAxis as Pm, spanVisible as Om, wrap as hm } from "./parallax/parallaxMath.js";
105
- import { Emitter as bm } from "./particles/Emitter.js";
106
- import { ParticleSim as Rm } from "./particles/ParticleSim.js";
107
- import { ParticleBudget as km, particleBudget as vm } from "./particles/ParticleBudget.js";
108
- import { lerpColor as Mm, sampleColor as Dm, sampleCurve as Nm } from "./particles/particleCurves.js";
109
- import { dueParticles as wm, sampleRange as Hm, scaleCount as Wm, seededRandom as Km, spreadAngle as Um } from "./particles/particleSampling.js";
110
- import { PhysicsWorld as Ym } from "./physics/PhysicsWorld.js";
111
- import { Body as qm } from "./physics/Body.js";
112
- import { Contact as Xm, ContactPoint as jm } from "./physics/Contact.js";
113
- import { MAX_POLYGON_VERTICES as Qm, polygonCentroid as $m, polygonShape as ea, regularPolygon as ra } from "./physics/polygon.js";
114
- import { mergeTileRects as ta, tileBodies as pa, tileBodiesFromGrid as ma } from "./physics/tileBodies.js";
115
- import { physicsSystem as ia } from "./physics/physicsSystem.js";
116
- import { syncToBody as la } from "./physics/syncToBody.js";
117
- import { COLLIDER_COLORS as na, colliderColor as sa, drawColliders as ca } from "./physics/drawColliders.js";
118
- import { FACE_BOTTOM as ua, FACE_LEFT as Sa, FACE_RIGHT as Aa, FACE_TOP as Ta } from "./physics/types.js";
119
- import { MinHeap as La } from "./nav/MinHeap.js";
120
- import { NAV_STEPS as ga, canStep as Ca, isOpen as Pa, navGrid as Oa, navGridFromCollision as ha, nearWallCost as ya } from "./nav/navGrid.js";
121
- import { nearestOpen as Ba } from "./nav/nearestOpen.js";
122
- import { findPath as Fa, floodFill as ka, octile as va, reachedCount as Ia } from "./nav/findPath.js";
123
- import { simplifyPath as Da, straightenPath as Na } from "./nav/straightenPath.js";
124
- import { flowField as wa, followField as Ha } from "./nav/flowField.js";
125
- import { alignment as Ka, applySteering as Ua, arrive as Va, cohesion as Ya, combineSteering as za, flee as qa, followFlow as Za, seek as Xa, separation as ja } from "./nav/steering.js";
126
- import { BehaviorTree as Qa, BtAgent as $a, action as ei, condition as ri, cooldown as oi, formatTrace as ti, invert as pi, parallel as mi, reactiveSelector as ai, reactiveSequence as ii, repeat as fi, retry as li, selector as xi, sequence as ni, succeed as si, timeout as ci, wait as di } from "./ai/behaviorTree.js";
127
- import { buildTree as Si } from "./ai/buildTree.js";
128
- import { DialogueRunner as Ti } from "./dialogue/DialogueRunner.js";
129
- import { validateDialogue as Li } from "./dialogue/validateDialogue.js";
130
- import { compileExpr as gi } from "./dialogue/expr.js";
131
- import { SaveStore as Pi } from "./save/SaveStore.js";
132
- import { MemoryBackend as hi } from "./save/MemoryBackend.js";
133
- import { WebStorageBackend as bi } from "./save/WebStorageBackend.js";
134
- import { MigrationError as Ri, migrateSave as Fi } from "./save/migrateSave.js";
135
- import { checksum as vi } from "./save/checksum.js";
136
- import { Autosaver as Mi } from "./save/Autosaver.js";
137
- import { transitionTo as Ni } from "./transitions/transitionTo.js";
138
- import { tweenDone as wi } from "./transitions/tweenDone.js";
139
- import { FadeTransition as Wi } from "./transitions/FadeTransition.js";
140
- import { CrossfadeTransition as Ui } from "./transitions/CrossfadeTransition.js";
141
- import { DitherWipeTransition as Yi } from "./transitions/DitherWipeTransition.js";
142
- import { BAYER4 as qi, DITHER_LEVELS as Zi, ditherCovered as Xi, wipeLevel as ji } from "./transitions/ditherMask.js";
143
- import { Letterbox as Qi } from "./transitions/Letterbox.js";
144
- import { Translator as ef } from "./i18n/Translator.js";
145
- import { CONTEXT_MARK as of, formatMessage as tf, sourceText as pf } from "./i18n/formatMessage.js";
146
- import { extractStrings as af } from "./i18n/extractStrings.js";
147
- import { noteContextLoss as lf, rebuildDelayMs as xf, watchContextLoss as nf } from "./diagnostics/contextLoss.js";
148
- import { bootWatch as cf } from "./diagnostics/bootWatch.js";
149
- import { describeError as uf, guardRender as Sf } from "./diagnostics/renderGuard.js";
150
- import { gpuName as Tf, maxTextureSize as Ef } from "./diagnostics/gpuInfo.js";
151
- import { countHitches as _f, looksThrottled as gf, percentile as Cf, summarizeFrames as Pf } from "./diagnostics/frameStats.js";
152
- import { FrameSampler as hf } from "./diagnostics/FrameSampler.js";
153
- import { ErrorDeduper as bf, trimStack as Bf } from "./diagnostics/ErrorDeduper.js";
154
- import { captureErrors as Ff } from "./diagnostics/captureErrors.js";
155
- import { DebugOverlay as vf } from "./debug/DebugOverlay.js";
156
- import { FrameStats as Mf } from "./debug/FrameStats.js";
157
- import { ErrorLog as Nf } from "./debug/ErrorLog.js";
158
- import { inspectWorld as wf } from "./debug/inspectWorld.js";
159
- import { DrawCallCounter as Wf } from "./debug/DrawCallCounter.js";
160
- import { BODY_HALF_HEIGHT as Uf, BODY_HALF_WIDTH as Vf, INPUT_FLAG_DASH as Yf, INPUT_STEP_DT as zf, INPUT_STEP_RATE as qf, TILE_SIZE as Zf } from "./net/constants.js";
161
- import { DIAGONAL as jf, blocksShot as Jf, bodyCollides as Qf, createCollisionGrid as $f, createMover as el, isSolidTile as rl, moveX as ol, moveY as tl, stepMover as pl } from "./net/movement.js";
162
- import { UPDATE_RECORD_BYTES as al, decodeSnapshotFrame as il, decodeUpdates as fl, encodeSnapshotFrame as ll, encodeUpdates as xl, quantizeUpdates as nl } from "./net/snapshotCodec.js";
163
- import { CADENCE as cl, cadenceEarly as dl, cadenceNext as ul } from "./net/cadence.js";
164
- import { noteServerTime as Al, resetServerClock as Tl, serverNow as El, serverOffset as Ll } from "./net/serverClock.js";
165
- import { PredictedMover as gl } from "./net/PredictedMover.js";
166
- import { InterpolationBuffer as Pl } from "./net/InterpolationBuffer.js";
167
- import { BODY_ID_BASE as hl, Room as yl } from "./net/Room.js";
168
- import { SpatialHash as Bl } from "./net/SpatialHash.js";
169
- import { LagCompensator as Fl } from "./net/LagCompensator.js";
170
- import { RoomHost as vl } from "./net/RoomHost.js";
171
- import { CLOSE_NO_ANSWER as Ml, Connection as Dl } from "./net/Connection.js";
172
- import { ApiClient as Gl, ApiError as wl } from "./net/ApiClient.js";
173
- import { reconnectDelay as Wl, shouldReconnect as Kl } from "./net/reconnect.js";
174
- import { moverFromWire as Vl, moverToWire as Yl } from "./net/protocol.js";
175
- import { LobbyClient as ql } from "./net/lobby/LobbyClient.js";
176
- import { LobbyHost as Xl } from "./net/lobby/LobbyHost.js";
177
- import { LobbyRooms as Jl } from "./net/lobby/LobbyRooms.js";
178
- import { Matchmaker as $l, balanceTeams as ex } from "./net/lobby/Matchmaker.js";
20
+ import { PixelGrid as $ } from "./core/PixelGrid.js";
21
+ import { SharpText as re } from "./core/SharpText.js";
22
+ import { gridPlacement as te } from "./core/gridPlacement.js";
23
+ import { Graphics as me } from "./core/Graphics.js";
24
+ import { Image as ie } from "./core/Image.js";
25
+ import { clearSilhouettes as le, fillSolid as xe, solidSilhouette as ne } from "./core/silhouette.js";
26
+ import { Group as ce } from "./core/Group.js";
27
+ import { blendLayer as ue } from "./core/blendLayer.js";
28
+ import { Rectangle as Ae } from "./core/Rectangle.js";
29
+ import { Text as Ee } from "./core/Text.js";
30
+ import { BitmapLabel as _e, addLabelGlyphs as ge, installLabelFont as Ce } from "./core/BitmapLabel.js";
31
+ import { Pointer as Oe } from "./core/Pointer.js";
32
+ import { CanvasTexture as ye, TextureRegistry as be } from "./core/TextureRegistry.js";
33
+ import { AtlasBuilder as Re } from "./core/atlas.js";
34
+ import { atlasPageLimit as ke, planAtlas as ve } from "./core/atlasPlan.js";
35
+ import { AssetLoader as Me, resolveUrl as De } from "./assets/AssetLoader.js";
36
+ import { collectAtlasPages as Ge, duplicateFrames as we, parseAtlas as He } from "./assets/textureAtlas.js";
37
+ import { Animator as Ke } from "./anim/Animator.js";
38
+ import { clipMarkers as Ve, frameNamed as Ye, parseAseprite as ze } from "./anim/parseAseprite.js";
39
+ import { tagDirection as Ze, tagFrames as Xe, tagRepeat as je } from "./anim/asepriteTags.js";
40
+ import { sliceAt as Qe, sliceBorders as $e, sliceNamed as er } from "./anim/asepriteSlices.js";
41
+ import { addAsepriteTextures as or, loadAseprite as tr } from "./assets/loadAseprite.js";
42
+ import { Prepainter as mr } from "./assets/Prepainter.js";
43
+ import { workerPainter as ir } from "./assets/workerPainter.js";
44
+ import { AnimStateMachine as lr } from "./anim/AnimStateMachine.js";
45
+ import { AnimStateComponent as nr, animStateSystem as sr } from "./anim/animStateSystem.js";
46
+ import { AnimationComponent as dr, SpriteComponent as ur, animationSystem as Sr } from "./anim/animationSystem.js";
47
+ import { FLIP_D as Tr, FLIP_H as Er, FLIP_V as Lr, gidOf as _r, layerByName as gr, objectsOf as Cr, parseTiled as Pr, tileAt as Or, tileRect as hr } from "./tilemap/tiled.js";
48
+ import { collisionFromIntGrid as br, collisionFromTiled as Br } from "./tilemap/collision.js";
49
+ import { entitiesOf as Fr, intGridAt as kr, levelAt as vr, levelByName as Ir } from "./tilemap/ldtk.js";
50
+ import { ldtkExternalLevels as Dr, loadLdtkLevel as Nr, parseLdtk as Gr } from "./tilemap/ldtkParse.js";
51
+ import { BLOB47_MASKS as Hr, BLOB_E as Wr, BLOB_N as Kr, BLOB_NE as Ur, BLOB_NW as Vr, BLOB_S as Yr, BLOB_SE as zr, BLOB_SW as qr, BLOB_W as Zr, EDGE_E as Xr, EDGE_N as jr, EDGE_S as Jr, EDGE_W as Qr, autotile as $r, autotileAt as eo, blob47Index as ro, blobMask as oo, edgeMask as to, paintTerrain as po, reduceBlobMask as mo, updateAutotile as ao } from "./tilemap/autotile.js";
52
+ import { TilemapView as fo } from "./tilemap/TilemapView.js";
53
+ import { Skeleton as xo } from "./rig/Skeleton.js";
54
+ import { HUMANOID_RIG as so } from "./rig/humanoid.js";
55
+ import { blendPose as uo, overlay as So, upperOver as Ao } from "./rig/poseMath.js";
56
+ import { HUMANOID_CLIPS as Eo, HUMANOID_POSES as Lo } from "./rig/humanoidPoses.js";
57
+ import { PosePlayer as go } from "./rig/PosePlayer.js";
58
+ import { RIG_PARTS as Po, RigView as Oo } from "./rig/RigView.js";
59
+ import { LightLayer as yo } from "./light/LightLayer.js";
60
+ import { HEAVY_FLASH_GAP_MS as Bo, RECOIL_MS as Ro, hitStopMs as Fo, hurtFlashGapMs as ko, hurtFlashMs as vo, recoilAt as Io, recoilPx as Mo } from "./fx/hitStop.js";
61
+ import { FloatingText as No } from "./fx/FloatingText.js";
62
+ import { inView as wo } from "./fx/viewCull.js";
63
+ import { Afterimages as Wo } from "./fx/Afterimages.js";
64
+ import { SoundEngine as Uo, sound as Vo } from "./audio/SoundEngine.js";
65
+ import { MusicPlayer as zo, music as qo } from "./audio/MusicPlayer.js";
66
+ import { MusicChannel as Xo } from "./audio/music/MusicChannel.js";
67
+ import { elementVolumeLocked as Jo } from "./audio/music/musicVoice.js";
68
+ import { registerSounds as $o } from "./audio/soundTable.js";
69
+ import { hasTakes as rt, registerTakes as ot } from "./audio/sampleBank.js";
70
+ import { Footsteps as pt } from "./audio/Footsteps.js";
71
+ import { SpatialAudio as at, spatialMix as it } from "./audio/spatial.js";
72
+ import { SYNTH_RATE as lt, renderRecipe as xt } from "./audio/synth.js";
73
+ import { Keyboard as st } from "./input/Keyboard.js";
74
+ import { Actions as dt, PAD_BUTTONS as ut } from "./input/Actions.js";
75
+ import { chordHeld as At, parseChord as Tt } from "./input/keyChord.js";
76
+ import { aimAxis as Lt } from "./input/aimAxis.js";
77
+ import { STICK_DEAD_ZONE as gt, stickActive as Ct, stickToAxis as Pt, stickVector as Ot } from "./input/stickAxis.js";
78
+ import { LongPress as yt } from "./input/longPress.js";
79
+ import { AIM_CENTRE as Bt, AIM_EARLY_SLOP as Rt, AIM_PRESS_MS as Ft, AIM_TAP_SLOP as kt, AimGesture as vt, aimPoint as It, dragSlop as Mt, spotReach as Dt, spotShare as Nt } from "./input/AimGesture.js";
80
+ import { LOCK_KEEP_RANGE as wt, LOCK_PICK_CONE as Ht, LOCK_PICK_RANGE as Wt, TargetLock as Kt, keptTarget as Ut, nearestTarget as Vt, pickTarget as Yt } from "./input/TargetLock.js";
81
+ import { Keymap as qt, keyLabel as Zt, keymapStorage as Xt, mergeKeymap as jt } from "./input/Keymap.js";
82
+ import { InputCapture as Qt, deviceOf as $t, padLabel as ep } from "./input/InputCapture.js";
83
+ import { InputPlayer as op, InputRecorder as tp } from "./input/inputTape.js";
84
+ import { isTouchUi as mp, setNativeShell as ap, setTouchOverrideKey as ip } from "./platform/touch.js";
85
+ import { onAppResume as lp } from "./platform/appResume.js";
86
+ import { timeoutSignal as np } from "./platform/timeoutSignal.js";
87
+ import { rumble as cp, rumblePad as dp, rumbleParams as up, stopRumble as Sp } from "./input/rumble.js";
88
+ import { HapticGate as Tp, Haptics as Ep, vibrate as Lp } from "./input/haptics.js";
89
+ import { enterFullscreen as gp, exitFullscreen as Cp, fullscreenSupported as Pp, isFullscreen as Op, onFullscreenChange as hp, toggleFullscreen as yp } from "./platform/fullscreen.js";
90
+ import { currentOrientationKind as Bp, lockOrientation as Rp, unlockOrientation as Fp } from "./platform/orientation.js";
91
+ import { followReducedMotion as vp, onReducedMotionChange as Ip, prefersReducedMotion as Mp } from "./platform/reducedMotion.js";
92
+ import { exitPointerLock as Np, isPointerLocked as Gp, onPointerLockChange as wp, requestPointerLock as Hp } from "./platform/pointerLock.js";
93
+ import { detectTouch as Kp } from "./input/touchDetect.js";
94
+ import { DayClock as Vp, clockText as Yp, mixRgb as zp, tintNight as qp } from "./ambient/DayClock.js";
95
+ import { hash01 as Xp, weatherAt as jp } from "./ambient/weather.js";
96
+ import { WeatherLayer as Qp } from "./ambient/WeatherLayer.js";
97
+ import { gradeAt as em, mixToWhite as rm } from "./ambient/grade.js";
98
+ import { ColorGrade as tm } from "./ambient/ColorGrade.js";
99
+ import { birdFrame as mm, boxInView as am, firefliesOut as im, fireflyGlow as fm, fireflyOffset as lm, flockSlot as xm, pickInView as nm, puffOffset as sm, sourceOf as cm } from "./ambient/life/lifeMotion.js";
100
+ import { Drift as um } from "./ambient/life/Drift.js";
101
+ import { Birds as Am } from "./ambient/life/Birds.js";
102
+ import { Butterflies as Em } from "./ambient/life/Butterflies.js";
103
+ import { Fireflies as _m } from "./ambient/life/Fireflies.js";
104
+ import { ChimneySmoke as Cm } from "./ambient/life/ChimneySmoke.js";
105
+ import { Parallax as Om } from "./parallax/Parallax.js";
106
+ import { ParallaxLayer as ym } from "./parallax/ParallaxLayer.js";
107
+ import { parallaxOrigin as Bm, placeAxis as Rm, spanVisible as Fm, wrap as km } from "./parallax/parallaxMath.js";
108
+ import { Emitter as Im } from "./particles/Emitter.js";
109
+ import { ParticleSim as Dm } from "./particles/ParticleSim.js";
110
+ import { ParticleBudget as Gm, particleBudget as wm } from "./particles/ParticleBudget.js";
111
+ import { lerpColor as Wm, sampleColor as Km, sampleCurve as Um } from "./particles/particleCurves.js";
112
+ import { dueParticles as Ym, sampleRange as zm, scaleCount as qm, seededRandom as Zm, spreadAngle as Xm } from "./particles/particleSampling.js";
113
+ import { PhysicsWorld as Jm } from "./physics/PhysicsWorld.js";
114
+ import { Body as $m } from "./physics/Body.js";
115
+ import { Contact as ra, ContactPoint as oa } from "./physics/Contact.js";
116
+ import { MAX_POLYGON_VERTICES as pa, polygonCentroid as ma, polygonShape as aa, regularPolygon as ia } from "./physics/polygon.js";
117
+ import { mergeTileRects as la, tileBodies as xa, tileBodiesFromGrid as na } from "./physics/tileBodies.js";
118
+ import { physicsSystem as ca } from "./physics/physicsSystem.js";
119
+ import { syncToBody as ua } from "./physics/syncToBody.js";
120
+ import { COLLIDER_COLORS as Aa, colliderColor as Ta, drawColliders as Ea } from "./physics/drawColliders.js";
121
+ import { FACE_BOTTOM as _a, FACE_LEFT as ga, FACE_RIGHT as Ca, FACE_TOP as Pa } from "./physics/types.js";
122
+ import { MinHeap as ha } from "./nav/MinHeap.js";
123
+ import { NAV_STEPS as ba, canStep as Ba, isOpen as Ra, navGrid as Fa, navGridFromCollision as ka, nearWallCost as va } from "./nav/navGrid.js";
124
+ import { nearestOpen as Ma } from "./nav/nearestOpen.js";
125
+ import { findPath as Na, floodFill as Ga, octile as wa, reachedCount as Ha } from "./nav/findPath.js";
126
+ import { simplifyPath as Ka, straightenPath as Ua } from "./nav/straightenPath.js";
127
+ import { flowField as Ya, followField as za } from "./nav/flowField.js";
128
+ import { alignment as Za, applySteering as Xa, arrive as ja, cohesion as Ja, combineSteering as Qa, flee as $a, followFlow as ei, seek as ri, separation as oi } from "./nav/steering.js";
129
+ import { BehaviorTree as pi, BtAgent as mi, action as ai, condition as ii, cooldown as fi, formatTrace as li, invert as xi, parallel as ni, reactiveSelector as si, reactiveSequence as ci, repeat as di, retry as ui, selector as Si, sequence as Ai, succeed as Ti, timeout as Ei, wait as Li } from "./ai/behaviorTree.js";
130
+ import { buildTree as gi } from "./ai/buildTree.js";
131
+ import { DialogueRunner as Pi } from "./dialogue/DialogueRunner.js";
132
+ import { validateDialogue as hi } from "./dialogue/validateDialogue.js";
133
+ import { compileExpr as bi } from "./dialogue/expr.js";
134
+ import { SaveStore as Ri } from "./save/SaveStore.js";
135
+ import { MemoryBackend as ki } from "./save/MemoryBackend.js";
136
+ import { WebStorageBackend as Ii } from "./save/WebStorageBackend.js";
137
+ import { MigrationError as Di, migrateSave as Ni } from "./save/migrateSave.js";
138
+ import { checksum as wi } from "./save/checksum.js";
139
+ import { Autosaver as Wi } from "./save/Autosaver.js";
140
+ import { transitionTo as Ui } from "./transitions/transitionTo.js";
141
+ import { tweenDone as Yi } from "./transitions/tweenDone.js";
142
+ import { FadeTransition as qi } from "./transitions/FadeTransition.js";
143
+ import { CrossfadeTransition as Xi } from "./transitions/CrossfadeTransition.js";
144
+ import { DitherWipeTransition as Ji } from "./transitions/DitherWipeTransition.js";
145
+ import { BAYER4 as $i, DITHER_LEVELS as ef, ditherCovered as rf, wipeLevel as of } from "./transitions/ditherMask.js";
146
+ import { Letterbox as pf } from "./transitions/Letterbox.js";
147
+ import { Translator as af } from "./i18n/Translator.js";
148
+ import { CONTEXT_MARK as lf, formatMessage as xf, sourceText as nf } from "./i18n/formatMessage.js";
149
+ import { extractStrings as cf } from "./i18n/extractStrings.js";
150
+ import { noteContextLoss as uf, rebuildDelayMs as Sf, watchContextLoss as Af } from "./diagnostics/contextLoss.js";
151
+ import { bootWatch as Ef } from "./diagnostics/bootWatch.js";
152
+ import { describeError as _f, guardRender as gf } from "./diagnostics/renderGuard.js";
153
+ import { gpuName as Pf, maxTextureSize as Of } from "./diagnostics/gpuInfo.js";
154
+ import { countHitches as yf, looksThrottled as bf, percentile as Bf, summarizeFrames as Rf } from "./diagnostics/frameStats.js";
155
+ import { FrameSampler as kf } from "./diagnostics/FrameSampler.js";
156
+ import { ErrorDeduper as If, trimStack as Mf } from "./diagnostics/ErrorDeduper.js";
157
+ import { captureErrors as Nf } from "./diagnostics/captureErrors.js";
158
+ import { DebugOverlay as wf } from "./debug/DebugOverlay.js";
159
+ import { FrameStats as Wf } from "./debug/FrameStats.js";
160
+ import { ErrorLog as Uf } from "./debug/ErrorLog.js";
161
+ import { inspectWorld as Yf } from "./debug/inspectWorld.js";
162
+ import { DrawCallCounter as qf } from "./debug/DrawCallCounter.js";
163
+ import { BODY_HALF_HEIGHT as Xf, BODY_HALF_WIDTH as jf, INPUT_FLAG_DASH as Jf, INPUT_STEP_DT as Qf, INPUT_STEP_RATE as $f, TILE_SIZE as el } from "./net/constants.js";
164
+ import { DIAGONAL as ol, blocksShot as tl, bodyCollides as pl, createCollisionGrid as ml, createMover as al, isSolidTile as il, moveX as fl, moveY as ll, stepMover as xl } from "./net/movement.js";
165
+ import { UPDATE_RECORD_BYTES as sl, decodeSnapshotFrame as cl, decodeUpdates as dl, encodeSnapshotFrame as ul, encodeUpdates as Sl, quantizeUpdates as Al } from "./net/snapshotCodec.js";
166
+ import { CADENCE as El, cadenceEarly as Ll, cadenceNext as _l } from "./net/cadence.js";
167
+ import { noteServerTime as Cl, resetServerClock as Pl, serverNow as Ol, serverOffset as hl } from "./net/serverClock.js";
168
+ import { PredictedMover as bl } from "./net/PredictedMover.js";
169
+ import { InterpolationBuffer as Rl } from "./net/InterpolationBuffer.js";
170
+ import { BODY_ID_BASE as kl, Room as vl } from "./net/Room.js";
171
+ import { SpatialHash as Ml } from "./net/SpatialHash.js";
172
+ import { LagCompensator as Nl } from "./net/LagCompensator.js";
173
+ import { RoomHost as wl } from "./net/RoomHost.js";
174
+ import { CLOSE_NO_ANSWER as Wl, Connection as Kl } from "./net/Connection.js";
175
+ import { ApiClient as Vl, ApiError as Yl } from "./net/ApiClient.js";
176
+ import { reconnectDelay as ql, shouldReconnect as Zl } from "./net/reconnect.js";
177
+ import { moverFromWire as jl, moverToWire as Jl } from "./net/protocol.js";
178
+ import { LobbyClient as $l } from "./net/lobby/LobbyClient.js";
179
+ import { LobbyHost as rx } from "./net/lobby/LobbyHost.js";
180
+ import { LobbyRooms as tx } from "./net/lobby/LobbyRooms.js";
181
+ import { Matchmaker as mx, balanceTeams as ax } from "./net/lobby/Matchmaker.js";
179
182
  export {
180
- Ct as AIM_CENTRE,
181
- Pt as AIM_EARLY_SLOP,
182
- Ot as AIM_PRESS_MS,
183
- ht as AIM_TAP_SLOP,
184
- ft as Actions,
185
- Mo as Afterimages,
186
- yt as AimGesture,
187
- mr as AnimStateComponent,
188
- tr as AnimStateMachine,
189
- fr as AnimationComponent,
190
- De as Animator,
191
- Gl as ApiClient,
192
- wl as ApiError,
193
- Be as AssetLoader,
194
- Pe as AtlasBuilder,
195
- Mi as Autosaver,
196
- qi as BAYER4,
197
- Ir as BLOB47_MASKS,
198
- Mr as BLOB_E,
199
- Dr as BLOB_N,
200
- Nr as BLOB_NE,
201
- Gr as BLOB_NW,
202
- wr as BLOB_S,
203
- Hr as BLOB_SE,
204
- Wr as BLOB_SW,
205
- Kr as BLOB_W,
206
- Uf as BODY_HALF_HEIGHT,
207
- Vf as BODY_HALF_WIDTH,
208
- hl as BODY_ID_BASE,
209
- Qa as BehaviorTree,
210
- nm as Birds,
211
- ue as BitmapLabel,
212
- qm as Body,
213
- $a as BtAgent,
214
- cm as Butterflies,
215
- cl as CADENCE,
216
- Ml as CLOSE_NO_ANSWER,
217
- na as COLLIDER_COLORS,
218
- of as CONTEXT_MARK,
183
+ Bt as AIM_CENTRE,
184
+ Rt as AIM_EARLY_SLOP,
185
+ Ft as AIM_PRESS_MS,
186
+ kt as AIM_TAP_SLOP,
187
+ dt as Actions,
188
+ Wo as Afterimages,
189
+ vt as AimGesture,
190
+ nr as AnimStateComponent,
191
+ lr as AnimStateMachine,
192
+ dr as AnimationComponent,
193
+ Ke as Animator,
194
+ Vl as ApiClient,
195
+ Yl as ApiError,
196
+ Me as AssetLoader,
197
+ Re as AtlasBuilder,
198
+ Wi as Autosaver,
199
+ $i as BAYER4,
200
+ Hr as BLOB47_MASKS,
201
+ Wr as BLOB_E,
202
+ Kr as BLOB_N,
203
+ Ur as BLOB_NE,
204
+ Vr as BLOB_NW,
205
+ Yr as BLOB_S,
206
+ zr as BLOB_SE,
207
+ qr as BLOB_SW,
208
+ Zr as BLOB_W,
209
+ Xf as BODY_HALF_HEIGHT,
210
+ jf as BODY_HALF_WIDTH,
211
+ kl as BODY_ID_BASE,
212
+ pi as BehaviorTree,
213
+ Am as Birds,
214
+ _e as BitmapLabel,
215
+ $m as Body,
216
+ mi as BtAgent,
217
+ Em as Butterflies,
218
+ El as CADENCE,
219
+ Wl as CLOSE_NO_ANSWER,
220
+ Aa as COLLIDER_COLORS,
221
+ lf as CONTEXT_MARK,
219
222
  R as Camera,
220
- _e as CanvasTexture,
221
- Am as ChimneySmoke,
223
+ ye as CanvasTexture,
224
+ Cm as ChimneySmoke,
222
225
  G as Clock,
223
- Jp as ColorGrade,
224
- Dl as Connection,
225
- Xm as Contact,
226
- jm as ContactPoint,
227
- Ui as CrossfadeTransition,
228
- jf as DIAGONAL,
229
- Zi as DITHER_LEVELS,
230
- Gp as DayClock,
231
- vf as DebugOverlay,
232
- Ti as DialogueRunner,
233
- Yi as DitherWipeTransition,
234
- Wf as DrawCallCounter,
235
- lm as Drift,
236
- Ur as EDGE_E,
237
- Vr as EDGE_N,
238
- Yr as EDGE_S,
239
- zr as EDGE_W,
240
- bm as Emitter,
226
+ tm as ColorGrade,
227
+ Kl as Connection,
228
+ ra as Contact,
229
+ oa as ContactPoint,
230
+ Xi as CrossfadeTransition,
231
+ ol as DIAGONAL,
232
+ ef as DITHER_LEVELS,
233
+ Vp as DayClock,
234
+ wf as DebugOverlay,
235
+ Pi as DialogueRunner,
236
+ Ji as DitherWipeTransition,
237
+ qf as DrawCallCounter,
238
+ um as Drift,
239
+ Xr as EDGE_E,
240
+ jr as EDGE_N,
241
+ Jr as EDGE_S,
242
+ Qr as EDGE_W,
243
+ Im as Emitter,
241
244
  o as Engine,
242
- bf as ErrorDeduper,
243
- Nf as ErrorLog,
245
+ If as ErrorDeduper,
246
+ Uf as ErrorLog,
244
247
  P as EventBus,
245
- ua as FACE_BOTTOM,
246
- Sa as FACE_LEFT,
247
- Aa as FACE_RIGHT,
248
- Ta as FACE_TOP,
249
- sr as FLIP_D,
250
- cr as FLIP_H,
251
- dr as FLIP_V,
252
- Wi as FadeTransition,
253
- um as Fireflies,
248
+ _a as FACE_BOTTOM,
249
+ ga as FACE_LEFT,
250
+ Ca as FACE_RIGHT,
251
+ Pa as FACE_TOP,
252
+ Tr as FLIP_D,
253
+ Er as FLIP_H,
254
+ Lr as FLIP_V,
255
+ qi as FadeTransition,
256
+ _m as Fireflies,
254
257
  f as FixedLoop,
255
- Fo as FloatingText,
256
- Qo as Footsteps,
257
- hf as FrameSampler,
258
- Mf as FrameStats,
259
- $ as Graphics,
260
- ie as Group,
261
- Co as HEAVY_FLASH_GAP_MS,
262
- so as HUMANOID_CLIPS,
263
- co as HUMANOID_POSES,
264
- ao as HUMANOID_RIG,
265
- sp as HapticGate,
266
- cp as Haptics,
258
+ No as FloatingText,
259
+ pt as Footsteps,
260
+ kf as FrameSampler,
261
+ Wf as FrameStats,
262
+ me as Graphics,
263
+ ce as Group,
264
+ Bo as HEAVY_FLASH_GAP_MS,
265
+ Eo as HUMANOID_CLIPS,
266
+ Lo as HUMANOID_POSES,
267
+ so as HUMANOID_RIG,
268
+ Tp as HapticGate,
269
+ Ep as Haptics,
267
270
  x as HiddenPause,
268
- Yf as INPUT_FLAG_DASH,
269
- zf as INPUT_STEP_DT,
270
- qf as INPUT_STEP_RATE,
271
- re as Image,
272
- zt as InputCapture,
273
- jt as InputPlayer,
274
- Jt as InputRecorder,
275
- Pl as InterpolationBuffer,
276
- at as Keyboard,
277
- Wt as Keymap,
278
- vt as LOCK_KEEP_RANGE,
279
- It as LOCK_PICK_CONE,
280
- Mt as LOCK_PICK_RANGE,
281
- Fl as LagCompensator,
282
- Qi as Letterbox,
283
- _o as LightLayer,
284
- ql as LobbyClient,
285
- Xl as LobbyHost,
286
- Jl as LobbyRooms,
287
- _t as LongPress,
288
- Qm as MAX_POLYGON_VERTICES,
289
- $l as Matchmaker,
290
- hi as MemoryBackend,
291
- Ri as MigrationError,
292
- La as MinHeap,
293
- Uo as MusicChannel,
294
- Ho as MusicPlayer,
295
- ga as NAV_STEPS,
271
+ Jf as INPUT_FLAG_DASH,
272
+ Qf as INPUT_STEP_DT,
273
+ $f as INPUT_STEP_RATE,
274
+ ie as Image,
275
+ Qt as InputCapture,
276
+ op as InputPlayer,
277
+ tp as InputRecorder,
278
+ Rl as InterpolationBuffer,
279
+ st as Keyboard,
280
+ qt as Keymap,
281
+ wt as LOCK_KEEP_RANGE,
282
+ Ht as LOCK_PICK_CONE,
283
+ Wt as LOCK_PICK_RANGE,
284
+ Nl as LagCompensator,
285
+ pf as Letterbox,
286
+ yo as LightLayer,
287
+ $l as LobbyClient,
288
+ rx as LobbyHost,
289
+ tx as LobbyRooms,
290
+ yt as LongPress,
291
+ pa as MAX_POLYGON_VERTICES,
292
+ mx as Matchmaker,
293
+ ki as MemoryBackend,
294
+ Di as MigrationError,
295
+ ha as MinHeap,
296
+ Xo as MusicChannel,
297
+ zo as MusicPlayer,
298
+ ba as NAV_STEPS,
296
299
  J as ObjectFactory,
297
- lt as PAD_BUTTONS,
298
- Em as Parallax,
299
- _m as ParallaxLayer,
300
- km as ParticleBudget,
301
- Rm as ParticleSim,
302
- Ym as PhysicsWorld,
303
- Ee as Pointer,
304
- So as PosePlayer,
305
- gl as PredictedMover,
300
+ ut as PAD_BUTTONS,
301
+ Om as Parallax,
302
+ ym as ParallaxLayer,
303
+ Gm as ParticleBudget,
304
+ Dm as ParticleSim,
305
+ Jm as PhysicsWorld,
306
+ $ as PixelGrid,
307
+ Oe as Pointer,
308
+ go as PosePlayer,
309
+ bl as PredictedMover,
306
310
  T as PrefabLibrary,
307
- $e as Prepainter,
308
- Po as RECOIL_MS,
309
- To as RIG_PARTS,
310
- ne as Rectangle,
311
- Eo as RigView,
312
- yl as Room,
313
- vl as RoomHost,
314
- St as STICK_DEAD_ZONE,
315
- tt as SYNTH_RATE,
316
- Pi as SaveStore,
311
+ mr as Prepainter,
312
+ Ro as RECOIL_MS,
313
+ Po as RIG_PARTS,
314
+ Ae as Rectangle,
315
+ Oo as RigView,
316
+ vl as Room,
317
+ wl as RoomHost,
318
+ gt as STICK_DEAD_ZONE,
319
+ lt as SYNTH_RATE,
320
+ Ri as SaveStore,
317
321
  p as Scene,
318
322
  a as SceneManager,
319
- po as Skeleton,
320
- No as SoundEngine,
321
- et as SpatialAudio,
322
- Bl as SpatialHash,
323
- lr as SpriteComponent,
323
+ re as SharpText,
324
+ xo as Skeleton,
325
+ Uo as SoundEngine,
326
+ at as SpatialAudio,
327
+ Ml as SpatialHash,
328
+ ur as SpriteComponent,
324
329
  b as Stage,
325
- Zf as TILE_SIZE,
326
- Dt as TargetLock,
327
- ce as Text,
328
- ge as TextureRegistry,
329
- oo as TilemapView,
330
+ el as TILE_SIZE,
331
+ Kt as TargetLock,
332
+ Ee as Text,
333
+ be as TextureRegistry,
334
+ fo as TilemapView,
330
335
  Y as Timeline,
331
336
  q as TimelineBuilder,
332
- ef as Translator,
337
+ af as Translator,
333
338
  K as Tween,
334
339
  U as Tweener,
335
- al as UPDATE_RECORD_BYTES,
336
- zp as WeatherLayer,
337
- bi as WebStorageBackend,
340
+ sl as UPDATE_RECORD_BYTES,
341
+ Qp as WeatherLayer,
342
+ Ii as WebStorageBackend,
338
343
  s as World,
339
- ei as action,
340
- je as addAsepriteTextures,
341
- Se as addLabelGlyphs,
342
- dt as aimAxis,
343
- bt as aimPoint,
344
- Ka as alignment,
345
- ar as animStateSystem,
346
- xr as animationSystem,
347
- Ua as applySteering,
348
- Va as arrive,
349
- he as atlasPageLimit,
350
- qr as autotile,
351
- Zr as autotileAt,
352
- ex as balanceTeams,
344
+ ai as action,
345
+ or as addAsepriteTextures,
346
+ ge as addLabelGlyphs,
347
+ Lt as aimAxis,
348
+ It as aimPoint,
349
+ Za as alignment,
350
+ sr as animStateSystem,
351
+ Sr as animationSystem,
352
+ Xa as applySteering,
353
+ ja as arrive,
354
+ ke as atlasPageLimit,
355
+ $r as autotile,
356
+ eo as autotileAt,
357
+ ax as balanceTeams,
353
358
  k as baseZoom,
354
- $p as birdFrame,
355
- le as blendLayer,
356
- fo as blendPose,
357
- Xr as blob47Index,
358
- jr as blobMask,
359
- Jf as blocksShot,
360
- Qf as bodyCollides,
361
- cf as bootWatch,
362
- em as boxInView,
363
- Si as buildTree,
364
- dl as cadenceEarly,
365
- ul as cadenceNext,
366
- Ca as canStep,
367
- Ff as captureErrors,
368
- vi as checksum,
369
- nt as chordHeld,
370
- te as clearSilhouettes,
371
- Ge as clipMarkers,
372
- wp as clockText,
373
- Ya as cohesion,
374
- ke as collectAtlasPages,
375
- sa as colliderColor,
376
- gr as collisionFromIntGrid,
377
- Cr as collisionFromTiled,
378
- za as combineSteering,
379
- gi as compileExpr,
380
- ri as condition,
381
- oi as cooldown,
382
- _f as countHitches,
383
- $f as createCollisionGrid,
384
- el as createMover,
385
- Cp as currentOrientationKind,
386
- il as decodeSnapshotFrame,
387
- fl as decodeUpdates,
359
+ mm as birdFrame,
360
+ ue as blendLayer,
361
+ uo as blendPose,
362
+ ro as blob47Index,
363
+ oo as blobMask,
364
+ tl as blocksShot,
365
+ pl as bodyCollides,
366
+ Ef as bootWatch,
367
+ am as boxInView,
368
+ gi as buildTree,
369
+ Ll as cadenceEarly,
370
+ _l as cadenceNext,
371
+ Ba as canStep,
372
+ Nf as captureErrors,
373
+ wi as checksum,
374
+ At as chordHeld,
375
+ le as clearSilhouettes,
376
+ Ve as clipMarkers,
377
+ Yp as clockText,
378
+ Ja as cohesion,
379
+ Ge as collectAtlasPages,
380
+ Ta as colliderColor,
381
+ br as collisionFromIntGrid,
382
+ Br as collisionFromTiled,
383
+ Qa as combineSteering,
384
+ bi as compileExpr,
385
+ ii as condition,
386
+ fi as cooldown,
387
+ yf as countHitches,
388
+ ml as createCollisionGrid,
389
+ al as createMover,
390
+ Bp as currentOrientationKind,
391
+ cl as decodeSnapshotFrame,
392
+ dl as decodeUpdates,
388
393
  c as defineComponent,
389
394
  d as defineFields,
390
395
  E as definePrefab,
391
- uf as describeError,
392
- Dp as detectTouch,
393
- qt as deviceOf,
394
- Xi as ditherCovered,
395
- Bt as dragSlop,
396
- ca as drawColliders,
397
- wm as dueParticles,
398
- ve as duplicateFrames,
396
+ _f as describeError,
397
+ Kp as detectTouch,
398
+ $t as deviceOf,
399
+ rf as ditherCovered,
400
+ Mt as dragSlop,
401
+ Ea as drawColliders,
402
+ Ym as dueParticles,
403
+ we as duplicateFrames,
399
404
  X as easeByName,
400
- Jr as edgeMask,
401
- Yo as elementVolumeLocked,
402
- ll as encodeSnapshotFrame,
403
- xl as encodeUpdates,
405
+ to as edgeMask,
406
+ Jo as elementVolumeLocked,
407
+ ul as encodeSnapshotFrame,
408
+ Sl as encodeUpdates,
404
409
  h as engineSettings,
405
- Sp as enterFullscreen,
406
- Or as entitiesOf,
410
+ gp as enterFullscreen,
411
+ Fr as entitiesOf,
407
412
  u as entityIndex,
408
- Ap as exitFullscreen,
409
- Fp as exitPointerLock,
410
- af as extractStrings,
411
- pe as fillSolid,
412
- Fa as findPath,
413
- rm as firefliesOut,
414
- om as fireflyGlow,
415
- tm as fireflyOffset,
413
+ Cp as exitFullscreen,
414
+ Np as exitPointerLock,
415
+ cf as extractStrings,
416
+ xe as fillSolid,
417
+ Na as findPath,
418
+ im as firefliesOut,
419
+ fm as fireflyGlow,
420
+ lm as fireflyOffset,
416
421
  v as fitScale,
417
- qa as flee,
418
- pm as flockSlot,
419
- ka as floodFill,
420
- wa as flowField,
421
- Ha as followField,
422
- Za as followFlow,
423
- yp as followReducedMotion,
424
- tf as formatMessage,
425
- ti as formatTrace,
426
- we as frameNamed,
427
- Tp as fullscreenSupported,
428
- ur as gidOf,
429
- Tf as gpuName,
430
- Zp as gradeAt,
431
- Sf as guardRender,
432
- Xo as hasTakes,
433
- Up as hash01,
434
- Oo as hitStopMs,
435
- ho as hurtFlashGapMs,
436
- yo as hurtFlashMs,
437
- vo as inView,
438
- wf as inspectWorld,
439
- Ae as installLabelFont,
440
- hr as intGridAt,
441
- pi as invert,
442
- Ep as isFullscreen,
443
- Pa as isOpen,
444
- kp as isPointerLocked,
422
+ $a as flee,
423
+ xm as flockSlot,
424
+ Ga as floodFill,
425
+ Ya as flowField,
426
+ za as followField,
427
+ ei as followFlow,
428
+ vp as followReducedMotion,
429
+ xf as formatMessage,
430
+ li as formatTrace,
431
+ Ye as frameNamed,
432
+ Pp as fullscreenSupported,
433
+ _r as gidOf,
434
+ Pf as gpuName,
435
+ em as gradeAt,
436
+ te as gridPlacement,
437
+ gf as guardRender,
438
+ rt as hasTakes,
439
+ Xp as hash01,
440
+ Fo as hitStopMs,
441
+ ko as hurtFlashGapMs,
442
+ vo as hurtFlashMs,
443
+ wo as inView,
444
+ Yf as inspectWorld,
445
+ Ce as installLabelFont,
446
+ kr as intGridAt,
447
+ xi as invert,
448
+ Op as isFullscreen,
449
+ Ra as isOpen,
450
+ Gp as isPointerLocked,
445
451
  L as isPrefabOf,
446
- rl as isSolidTile,
447
- $t as isTouchUi,
448
- Nt as keptTarget,
449
- Kt as keyLabel,
450
- Ut as keymapStorage,
451
- Sr as layerByName,
452
- Rr as ldtkExternalLevels,
453
- Mm as lerpColor,
454
- yr as levelAt,
455
- br as levelByName,
456
- Je as loadAseprite,
457
- Fr as loadLdtkLevel,
458
- Pp as lockOrientation,
459
- gf as looksThrottled,
460
- Ef as maxTextureSize,
461
- Vt as mergeKeymap,
462
- ta as mergeTileRects,
463
- Fi as migrateSave,
464
- Hp as mixRgb,
465
- Xp as mixToWhite,
466
- ol as moveX,
467
- tl as moveY,
468
- Vl as moverFromWire,
469
- Yl as moverToWire,
470
- Wo as music,
471
- Oa as navGrid,
472
- ha as navGridFromCollision,
473
- ya as nearWallCost,
474
- Ba as nearestOpen,
475
- Gt as nearestTarget,
476
- lf as noteContextLoss,
477
- Al as noteServerTime,
478
- Ar as objectsOf,
479
- va as octile,
480
- tp as onAppResume,
481
- Lp as onFullscreenChange,
482
- vp as onPointerLockChange,
483
- bp as onReducedMotionChange,
484
- lo as overlay,
485
- Zt as padLabel,
486
- Qr as paintTerrain,
487
- Cm as parallaxOrigin,
488
- mi as parallel,
489
- He as parseAseprite,
490
- Ie as parseAtlas,
491
- st as parseChord,
492
- kr as parseLdtk,
493
- Tr as parseTiled,
494
- vm as particleBudget,
495
- Cf as percentile,
496
- ia as physicsSystem,
497
- mm as pickInView,
498
- wt as pickTarget,
499
- Pm as placeAxis,
500
- ye as planAtlas,
501
- $m as polygonCentroid,
502
- ea as polygonShape,
452
+ il as isSolidTile,
453
+ mp as isTouchUi,
454
+ Ut as keptTarget,
455
+ Zt as keyLabel,
456
+ Xt as keymapStorage,
457
+ gr as layerByName,
458
+ Dr as ldtkExternalLevels,
459
+ Wm as lerpColor,
460
+ vr as levelAt,
461
+ Ir as levelByName,
462
+ tr as loadAseprite,
463
+ Nr as loadLdtkLevel,
464
+ Rp as lockOrientation,
465
+ bf as looksThrottled,
466
+ Of as maxTextureSize,
467
+ jt as mergeKeymap,
468
+ la as mergeTileRects,
469
+ Ni as migrateSave,
470
+ zp as mixRgb,
471
+ rm as mixToWhite,
472
+ fl as moveX,
473
+ ll as moveY,
474
+ jl as moverFromWire,
475
+ Jl as moverToWire,
476
+ qo as music,
477
+ Fa as navGrid,
478
+ ka as navGridFromCollision,
479
+ va as nearWallCost,
480
+ Ma as nearestOpen,
481
+ Vt as nearestTarget,
482
+ uf as noteContextLoss,
483
+ Cl as noteServerTime,
484
+ Cr as objectsOf,
485
+ wa as octile,
486
+ lp as onAppResume,
487
+ hp as onFullscreenChange,
488
+ wp as onPointerLockChange,
489
+ Ip as onReducedMotionChange,
490
+ So as overlay,
491
+ ep as padLabel,
492
+ po as paintTerrain,
493
+ Bm as parallaxOrigin,
494
+ ni as parallel,
495
+ ze as parseAseprite,
496
+ He as parseAtlas,
497
+ Tt as parseChord,
498
+ Gr as parseLdtk,
499
+ Pr as parseTiled,
500
+ wm as particleBudget,
501
+ Bf as percentile,
502
+ ca as physicsSystem,
503
+ nm as pickInView,
504
+ Yt as pickTarget,
505
+ Rm as placeAxis,
506
+ ve as planAtlas,
507
+ ma as polygonCentroid,
508
+ aa as polygonShape,
503
509
  _ as prefabPart,
504
- Bp as prefersReducedMotion,
505
- am as puffOffset,
506
- nl as quantizeUpdates,
507
- Ia as reachedCount,
508
- ai as reactiveSelector,
509
- ii as reactiveSequence,
510
- xf as rebuildDelayMs,
511
- bo as recoilAt,
512
- Bo as recoilPx,
513
- Wl as reconnectDelay,
514
- $r as reduceBlobMask,
515
- qo as registerSounds,
516
- jo as registerTakes,
517
- ra as regularPolygon,
518
- pt as renderRecipe,
519
- fi as repeat,
520
- Ip as requestPointerLock,
521
- Tl as resetServerClock,
522
- Re as resolveUrl,
523
- li as retry,
524
- ip as rumble,
525
- fp as rumblePad,
526
- lp as rumbleParams,
510
+ Mp as prefersReducedMotion,
511
+ sm as puffOffset,
512
+ Al as quantizeUpdates,
513
+ Ha as reachedCount,
514
+ si as reactiveSelector,
515
+ ci as reactiveSequence,
516
+ Sf as rebuildDelayMs,
517
+ Io as recoilAt,
518
+ Mo as recoilPx,
519
+ ql as reconnectDelay,
520
+ mo as reduceBlobMask,
521
+ $o as registerSounds,
522
+ ot as registerTakes,
523
+ ia as regularPolygon,
524
+ xt as renderRecipe,
525
+ di as repeat,
526
+ Hp as requestPointerLock,
527
+ Pl as resetServerClock,
528
+ De as resolveUrl,
529
+ ui as retry,
530
+ cp as rumble,
531
+ dp as rumblePad,
532
+ up as rumbleParams,
527
533
  H as runDue,
528
- Dm as sampleColor,
529
- Nm as sampleCurve,
530
- Hm as sampleRange,
531
- Wm as scaleCount,
532
- Km as seededRandom,
533
- Xa as seek,
534
- xi as selector,
535
- ja as separation,
536
- ni as sequence,
537
- El as serverNow,
538
- Ll as serverOffset,
539
- ep as setNativeShell,
540
- rp as setTouchOverrideKey,
541
- Kl as shouldReconnect,
542
- Da as simplifyPath,
543
- ze as sliceAt,
544
- qe as sliceBorders,
545
- Ze as sliceNamed,
546
- me as solidSilhouette,
547
- Go as sound,
548
- im as sourceOf,
549
- pf as sourceText,
550
- Om as spanVisible,
551
- rt as spatialMix,
534
+ Km as sampleColor,
535
+ Um as sampleCurve,
536
+ zm as sampleRange,
537
+ qm as scaleCount,
538
+ Zm as seededRandom,
539
+ ri as seek,
540
+ Si as selector,
541
+ oi as separation,
542
+ Ai as sequence,
543
+ Ol as serverNow,
544
+ hl as serverOffset,
545
+ ap as setNativeShell,
546
+ ip as setTouchOverrideKey,
547
+ Zl as shouldReconnect,
548
+ Ka as simplifyPath,
549
+ Qe as sliceAt,
550
+ $e as sliceBorders,
551
+ er as sliceNamed,
552
+ ne as solidSilhouette,
553
+ Vo as sound,
554
+ cm as sourceOf,
555
+ nf as sourceText,
556
+ Fm as spanVisible,
557
+ it as spatialMix,
552
558
  g as spawnPrefab,
553
- Rt as spotReach,
554
- Ft as spotShare,
555
- Um as spreadAngle,
556
- pl as stepMover,
557
- At as stickActive,
558
- Tt as stickToAxis,
559
- Et as stickVector,
560
- xp as stopRumble,
561
- Na as straightenPath,
562
- si as succeed,
563
- Pf as summarizeFrames,
564
- la as syncToBody,
559
+ Dt as spotReach,
560
+ Nt as spotShare,
561
+ Xm as spreadAngle,
562
+ xl as stepMover,
563
+ Ct as stickActive,
564
+ Pt as stickToAxis,
565
+ Ot as stickVector,
566
+ Sp as stopRumble,
567
+ Ua as straightenPath,
568
+ Ti as succeed,
569
+ Rf as summarizeFrames,
570
+ ua as syncToBody,
565
571
  S as system,
566
- Ke as tagDirection,
567
- Ue as tagFrames,
568
- Ve as tagRepeat,
569
- Er as tileAt,
570
- pa as tileBodies,
571
- ma as tileBodiesFromGrid,
572
- Lr as tileRect,
573
- ci as timeout,
574
- mp as timeoutSignal,
575
- Wp as tintNight,
576
- _p as toggleFullscreen,
577
- Ni as transitionTo,
578
- Bf as trimStack,
579
- wi as tweenDone,
580
- Op as unlockOrientation,
581
- eo as updateAutotile,
582
- xo as upperOver,
583
- Li as validateDialogue,
584
- dp as vibrate,
585
- di as wait,
586
- nf as watchContextLoss,
587
- Vp as weatherAt,
588
- ji as wipeLevel,
589
- rr as workerPainter,
572
+ Ze as tagDirection,
573
+ Xe as tagFrames,
574
+ je as tagRepeat,
575
+ Or as tileAt,
576
+ xa as tileBodies,
577
+ na as tileBodiesFromGrid,
578
+ hr as tileRect,
579
+ Ei as timeout,
580
+ np as timeoutSignal,
581
+ qp as tintNight,
582
+ yp as toggleFullscreen,
583
+ Ui as transitionTo,
584
+ Mf as trimStack,
585
+ Yi as tweenDone,
586
+ Fp as unlockOrientation,
587
+ ao as updateAutotile,
588
+ Ao as upperOver,
589
+ hi as validateDialogue,
590
+ Lp as vibrate,
591
+ Li as wait,
592
+ Af as watchContextLoss,
593
+ jp as weatherAt,
594
+ of as wipeLevel,
595
+ ir as workerPainter,
590
596
  I as worldZoom,
591
- hm as wrap,
597
+ km as wrap,
592
598
  M as zoomResolution,
593
599
  D as zoomSteps
594
600
  };