1681-engine 0.5.10 → 0.6.1

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.
Files changed (98) hide show
  1. package/CHANGELOG.md +61 -1
  2. package/README.md +12 -6
  3. package/dist/1681-engine.js +588 -522
  4. package/dist/ai/behaviorTree.js +198 -0
  5. package/dist/ai/buildTree.js +54 -0
  6. package/dist/audio/spatial.js +118 -0
  7. package/dist/cjs/electron/webPatcher.d.ts +4 -1
  8. package/dist/cjs/electron/webPatcher.js +9 -2
  9. package/dist/core/Camera.js +10 -0
  10. package/dist/core/ObjectFactory.js +23 -21
  11. package/dist/core/PixelGrid.js +47 -0
  12. package/dist/core/SharpText.js +72 -0
  13. package/dist/core/Stage.js +48 -31
  14. package/dist/core/gridPlacement.js +14 -0
  15. package/dist/dialogue/DialogueRunner.js +173 -0
  16. package/dist/dialogue/expr.js +137 -0
  17. package/dist/dialogue/validateDialogue.js +52 -0
  18. package/dist/ecs/prefab.js +94 -0
  19. package/dist/electron/webPatcher.js +16 -10
  20. package/dist/input/Actions.js +58 -27
  21. package/dist/input/InputCapture.js +98 -0
  22. package/dist/input/Keymap.js +32 -26
  23. package/dist/input/inputTape.js +68 -0
  24. package/dist/mobile/backButton.js +40 -0
  25. package/dist/mobile/capacitor.js +48 -0
  26. package/dist/mobile/screen.js +31 -0
  27. package/dist/mobile.js +12 -0
  28. package/dist/nav/flowField.js +58 -0
  29. package/dist/nav/steering.js +77 -0
  30. package/dist/net/InterpolationBuffer.js +30 -23
  31. package/dist/net/LagCompensator.js +100 -0
  32. package/dist/net/Room.js +122 -43
  33. package/dist/net/RoomHost.js +13 -4
  34. package/dist/net/SpatialHash.js +66 -0
  35. package/dist/types/ai/behaviorTree.d.ts +133 -0
  36. package/dist/types/ai/behaviorTree.d.ts.map +1 -0
  37. package/dist/types/ai/buildTree.d.ts +55 -0
  38. package/dist/types/ai/buildTree.d.ts.map +1 -0
  39. package/dist/types/audio/spatial.d.ts +107 -0
  40. package/dist/types/audio/spatial.d.ts.map +1 -0
  41. package/dist/types/core/Camera.d.ts +8 -0
  42. package/dist/types/core/Camera.d.ts.map +1 -1
  43. package/dist/types/core/ObjectFactory.d.ts.map +1 -1
  44. package/dist/types/core/PixelGrid.d.ts +30 -0
  45. package/dist/types/core/PixelGrid.d.ts.map +1 -0
  46. package/dist/types/core/SharpText.d.ts +32 -0
  47. package/dist/types/core/SharpText.d.ts.map +1 -0
  48. package/dist/types/core/Stage.d.ts +14 -0
  49. package/dist/types/core/Stage.d.ts.map +1 -1
  50. package/dist/types/core/gridPlacement.d.ts +20 -0
  51. package/dist/types/core/gridPlacement.d.ts.map +1 -0
  52. package/dist/types/dialogue/DialogueRunner.d.ts +78 -0
  53. package/dist/types/dialogue/DialogueRunner.d.ts.map +1 -0
  54. package/dist/types/dialogue/expr.d.ts +12 -0
  55. package/dist/types/dialogue/expr.d.ts.map +1 -0
  56. package/dist/types/dialogue/script.d.ts +78 -0
  57. package/dist/types/dialogue/script.d.ts.map +1 -0
  58. package/dist/types/dialogue/validateDialogue.d.ts +21 -0
  59. package/dist/types/dialogue/validateDialogue.d.ts.map +1 -0
  60. package/dist/types/ecs/prefab.d.ts +84 -0
  61. package/dist/types/ecs/prefab.d.ts.map +1 -0
  62. package/dist/types/electron/webPatcher.d.ts +4 -1
  63. package/dist/types/electron/webPatcher.d.ts.map +1 -1
  64. package/dist/types/index.d.ts +18 -1
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/dist/types/input/Actions.d.ts +14 -0
  67. package/dist/types/input/Actions.d.ts.map +1 -1
  68. package/dist/types/input/InputCapture.d.ts +53 -0
  69. package/dist/types/input/InputCapture.d.ts.map +1 -0
  70. package/dist/types/input/Keymap.d.ts +12 -6
  71. package/dist/types/input/Keymap.d.ts.map +1 -1
  72. package/dist/types/input/inputTape.d.ts +66 -0
  73. package/dist/types/input/inputTape.d.ts.map +1 -0
  74. package/dist/types/mobile/backButton.d.ts +30 -0
  75. package/dist/types/mobile/backButton.d.ts.map +1 -0
  76. package/dist/types/mobile/capacitor.d.ts +62 -0
  77. package/dist/types/mobile/capacitor.d.ts.map +1 -0
  78. package/dist/types/mobile/index.d.ts +4 -0
  79. package/dist/types/mobile/index.d.ts.map +1 -0
  80. package/dist/types/mobile/screen.d.ts +27 -0
  81. package/dist/types/mobile/screen.d.ts.map +1 -0
  82. package/dist/types/nav/flowField.d.ts +31 -0
  83. package/dist/types/nav/flowField.d.ts.map +1 -0
  84. package/dist/types/nav/steering.d.ts +47 -0
  85. package/dist/types/nav/steering.d.ts.map +1 -0
  86. package/dist/types/net/InterpolationBuffer.d.ts +5 -0
  87. package/dist/types/net/InterpolationBuffer.d.ts.map +1 -1
  88. package/dist/types/net/LagCompensator.d.ts +70 -0
  89. package/dist/types/net/LagCompensator.d.ts.map +1 -0
  90. package/dist/types/net/Room.d.ts +72 -3
  91. package/dist/types/net/Room.d.ts.map +1 -1
  92. package/dist/types/net/RoomHost.d.ts +8 -3
  93. package/dist/types/net/RoomHost.d.ts.map +1 -1
  94. package/dist/types/net/SpatialHash.d.ts +25 -0
  95. package/dist/types/net/SpatialHash.d.ts.map +1 -0
  96. package/dist/types/ui/ScrollView.d.ts.map +1 -1
  97. package/dist/ui/ScrollView.js +10 -8
  98. package/package.json +5 -1
@@ -1,534 +1,600 @@
1
1
  import { Engine as o } from "./engine/Engine.js";
2
- import { Scene as m } from "./engine/Scene.js";
2
+ import { Scene as p } from "./engine/Scene.js";
3
3
  import { SceneManager as a } from "./engine/SceneManager.js";
4
4
  import { FixedLoop as f } from "./engine/FixedLoop.js";
5
- import { HiddenPause as l } from "./engine/HiddenPause.js";
6
- import { World as n, defineComponent as c, defineFields as d, entityIndex as u, system as S } from "./ecs/World.js";
7
- import { EventBus as T } from "./events/EventBus.js";
8
- import { engineSettings as _ } from "./settings.js";
9
- import { Stage as C } from "./core/Stage.js";
10
- import { Camera as O } from "./core/Camera.js";
11
- import { baseZoom as h, fitScale as y, worldZoom as B, zoomResolution as R, zoomSteps as F } from "./core/pixelZoom.js";
12
- import { Clock as b } from "./core/Clock.js";
13
- import { runDue as I } from "./core/runDue.js";
14
- import { Tween as v, Tweener as D } from "./core/Tweener.js";
15
- import { Timeline as H } from "./core/Timeline.js";
16
- import { TimelineBuilder as W } from "./core/TimelineBuilder.js";
17
- import { easeByName as U } from "./core/eases.js";
18
- import { ObjectFactory as Y } from "./core/ObjectFactory.js";
19
- import { Graphics as Z } from "./core/Graphics.js";
20
- import { Image as j } from "./core/Image.js";
21
- import { clearSilhouettes as J, fillSolid as Q, solidSilhouette as $ } from "./core/silhouette.js";
22
- import { Group as re } from "./core/Group.js";
23
- import { blendLayer as te } from "./core/blendLayer.js";
24
- import { Rectangle as pe } from "./core/Rectangle.js";
25
- import { Text as ie } from "./core/Text.js";
26
- import { BitmapLabel as xe, addLabelGlyphs as le, installLabelFont as se } from "./core/BitmapLabel.js";
27
- import { Pointer as ce } from "./core/Pointer.js";
28
- import { CanvasTexture as ue, TextureRegistry as Se } from "./core/TextureRegistry.js";
29
- import { AtlasBuilder as Te } from "./core/atlas.js";
30
- import { atlasPageLimit as _e, planAtlas as Le } from "./core/atlasPlan.js";
31
- import { AssetLoader as ge, resolveUrl as Oe } from "./assets/AssetLoader.js";
32
- import { collectAtlasPages as he, duplicateFrames as ye, parseAtlas as Be } from "./assets/textureAtlas.js";
33
- import { Animator as Fe } from "./anim/Animator.js";
34
- import { clipMarkers as be, frameNamed as Me, parseAseprite as Ie } from "./anim/parseAseprite.js";
35
- import { tagDirection as ve, tagFrames as De, tagRepeat as Ge } from "./anim/asepriteTags.js";
36
- import { sliceAt as we, sliceBorders as We, sliceNamed as Ke } from "./anim/asepriteSlices.js";
37
- import { addAsepriteTextures as Ve, loadAseprite as Ye } from "./assets/loadAseprite.js";
38
- import { Prepainter as Ze } from "./assets/Prepainter.js";
39
- import { workerPainter as je } from "./assets/workerPainter.js";
40
- import { AnimStateMachine as Je } from "./anim/AnimStateMachine.js";
41
- import { AnimStateComponent as $e, animStateSystem as er } from "./anim/animStateSystem.js";
42
- import { AnimationComponent as or, SpriteComponent as tr, animationSystem as mr } from "./anim/animationSystem.js";
43
- import { FLIP_D as ar, FLIP_H as ir, FLIP_V as fr, gidOf as xr, layerByName as lr, objectsOf as sr, parseTiled as nr, tileAt as cr, tileRect as dr } from "./tilemap/tiled.js";
44
- import { collisionFromIntGrid as Sr, collisionFromTiled as Ar } from "./tilemap/collision.js";
45
- import { entitiesOf as Er, intGridAt as _r, levelAt as Lr, levelByName as Cr } from "./tilemap/ldtk.js";
46
- import { ldtkExternalLevels as Or, loadLdtkLevel as Pr, parseLdtk as hr } from "./tilemap/ldtkParse.js";
47
- import { BLOB47_MASKS as Br, BLOB_E as Rr, BLOB_N as Fr, BLOB_NE as kr, BLOB_NW as br, BLOB_S as Mr, BLOB_SE as Ir, BLOB_SW as Nr, BLOB_W as vr, EDGE_E as Dr, EDGE_N as Gr, EDGE_S as Hr, EDGE_W as wr, autotile as Wr, autotileAt as Kr, blob47Index as Ur, blobMask as Vr, edgeMask as Yr, paintTerrain as zr, reduceBlobMask as Zr, updateAutotile as Xr } from "./tilemap/autotile.js";
48
- import { TilemapView as qr } from "./tilemap/TilemapView.js";
49
- import { Skeleton as Qr } from "./rig/Skeleton.js";
50
- import { HUMANOID_RIG as eo } from "./rig/humanoid.js";
51
- import { blendPose as oo, overlay as to, upperOver as mo } from "./rig/poseMath.js";
52
- import { HUMANOID_CLIPS as ao, HUMANOID_POSES as io } from "./rig/humanoidPoses.js";
53
- import { PosePlayer as xo } from "./rig/PosePlayer.js";
54
- import { RIG_PARTS as so, RigView as no } from "./rig/RigView.js";
55
- import { LightLayer as uo } from "./light/LightLayer.js";
56
- import { HEAVY_FLASH_GAP_MS as Ao, RECOIL_MS as To, hitStopMs as Eo, hurtFlashGapMs as _o, hurtFlashMs as Lo, recoilAt as Co, recoilPx as go } from "./fx/hitStop.js";
57
- import { FloatingText as Po } from "./fx/FloatingText.js";
58
- import { inView as yo } from "./fx/viewCull.js";
59
- import { Afterimages as Ro } from "./fx/Afterimages.js";
60
- import { SoundEngine as ko, sound as bo } from "./audio/SoundEngine.js";
61
- import { MusicPlayer as Io, music as No } from "./audio/MusicPlayer.js";
62
- import { MusicChannel as Do } from "./audio/music/MusicChannel.js";
63
- import { elementVolumeLocked as Ho } from "./audio/music/musicVoice.js";
64
- import { registerSounds as Wo } from "./audio/soundTable.js";
65
- import { hasTakes as Uo, registerTakes as Vo } from "./audio/sampleBank.js";
66
- import { Footsteps as zo } from "./audio/Footsteps.js";
67
- import { SYNTH_RATE as Xo, renderRecipe as jo } from "./audio/synth.js";
68
- import { Keyboard as Jo } from "./input/Keyboard.js";
69
- import { Actions as $o, PAD_BUTTONS as et } from "./input/Actions.js";
70
- import { chordHeld as ot, parseChord as tt } from "./input/keyChord.js";
71
- import { aimAxis as pt } from "./input/aimAxis.js";
72
- import { STICK_DEAD_ZONE as it, stickActive as ft, stickToAxis as xt, stickVector as lt } from "./input/stickAxis.js";
73
- import { LongPress as nt } from "./input/longPress.js";
74
- import { AIM_CENTRE as dt, AIM_EARLY_SLOP as ut, AIM_PRESS_MS as St, AIM_TAP_SLOP as At, AimGesture as Tt, aimPoint as Et, dragSlop as _t, spotReach as Lt, spotShare as Ct } from "./input/AimGesture.js";
75
- import { LOCK_KEEP_RANGE as Ot, LOCK_PICK_CONE as Pt, LOCK_PICK_RANGE as ht, TargetLock as yt, keptTarget as Bt, nearestTarget as Rt, pickTarget as Ft } from "./input/TargetLock.js";
76
- import { Keymap as bt, keyLabel as Mt, keymapStorage as It, mergeKeymap as Nt } from "./input/Keymap.js";
77
- import { isTouchUi as Dt, setNativeShell as Gt, setTouchOverrideKey as Ht } from "./platform/touch.js";
78
- import { onAppResume as Wt } from "./platform/appResume.js";
79
- import { timeoutSignal as Ut } from "./platform/timeoutSignal.js";
80
- import { rumble as Yt, rumblePad as zt, rumbleParams as Zt, stopRumble as Xt } from "./input/rumble.js";
81
- import { HapticGate as qt, Haptics as Jt, vibrate as Qt } from "./input/haptics.js";
82
- import { enterFullscreen as em, exitFullscreen as rm, fullscreenSupported as om, isFullscreen as tm, onFullscreenChange as mm, toggleFullscreen as pm } from "./platform/fullscreen.js";
83
- import { currentOrientationKind as im, lockOrientation as fm, unlockOrientation as xm } from "./platform/orientation.js";
84
- import { followReducedMotion as sm, onReducedMotionChange as nm, prefersReducedMotion as cm } from "./platform/reducedMotion.js";
85
- import { exitPointerLock as um, isPointerLocked as Sm, onPointerLockChange as Am, requestPointerLock as Tm } from "./platform/pointerLock.js";
86
- import { detectTouch as _m } from "./input/touchDetect.js";
87
- import { DayClock as Cm, clockText as gm, mixRgb as Om, tintNight as Pm } from "./ambient/DayClock.js";
88
- import { hash01 as ym, weatherAt as Bm } from "./ambient/weather.js";
89
- import { WeatherLayer as Fm } from "./ambient/WeatherLayer.js";
90
- import { gradeAt as bm, mixToWhite as Mm } from "./ambient/grade.js";
91
- import { ColorGrade as Nm } from "./ambient/ColorGrade.js";
92
- import { birdFrame as Dm, boxInView as Gm, firefliesOut as Hm, fireflyGlow as wm, fireflyOffset as Wm, flockSlot as Km, pickInView as Um, puffOffset as Vm, sourceOf as Ym } from "./ambient/life/lifeMotion.js";
93
- import { Drift as Zm } from "./ambient/life/Drift.js";
94
- import { Birds as jm } from "./ambient/life/Birds.js";
95
- import { Butterflies as Jm } from "./ambient/life/Butterflies.js";
96
- import { Fireflies as $m } from "./ambient/life/Fireflies.js";
97
- import { ChimneySmoke as rp } from "./ambient/life/ChimneySmoke.js";
98
- import { Parallax as tp } from "./parallax/Parallax.js";
99
- import { ParallaxLayer as pp } from "./parallax/ParallaxLayer.js";
100
- import { parallaxOrigin as ip, placeAxis as fp, spanVisible as xp, wrap as lp } from "./parallax/parallaxMath.js";
101
- import { Emitter as np } from "./particles/Emitter.js";
102
- import { ParticleSim as dp } from "./particles/ParticleSim.js";
103
- import { ParticleBudget as Sp, particleBudget as Ap } from "./particles/ParticleBudget.js";
104
- import { lerpColor as Ep, sampleColor as _p, sampleCurve as Lp } from "./particles/particleCurves.js";
105
- import { dueParticles as gp, sampleRange as Op, scaleCount as Pp, seededRandom as hp, spreadAngle as yp } from "./particles/particleSampling.js";
106
- import { PhysicsWorld as Rp } from "./physics/PhysicsWorld.js";
107
- import { Body as kp } from "./physics/Body.js";
108
- import { Contact as Mp, ContactPoint as Ip } from "./physics/Contact.js";
109
- import { MAX_POLYGON_VERTICES as vp, polygonCentroid as Dp, polygonShape as Gp, regularPolygon as Hp } from "./physics/polygon.js";
110
- import { mergeTileRects as Wp, tileBodies as Kp, tileBodiesFromGrid as Up } from "./physics/tileBodies.js";
111
- import { physicsSystem as Yp } from "./physics/physicsSystem.js";
112
- import { syncToBody as Zp } from "./physics/syncToBody.js";
113
- import { COLLIDER_COLORS as jp, colliderColor as qp, drawColliders as Jp } from "./physics/drawColliders.js";
114
- import { FACE_BOTTOM as $p, FACE_LEFT as ea, FACE_RIGHT as ra, FACE_TOP as oa } from "./physics/types.js";
115
- import { MinHeap as ma } from "./nav/MinHeap.js";
116
- import { NAV_STEPS as aa, canStep as ia, isOpen as fa, navGrid as xa, navGridFromCollision as la, nearWallCost as sa } from "./nav/navGrid.js";
117
- import { nearestOpen as ca } from "./nav/nearestOpen.js";
118
- import { findPath as ua, floodFill as Sa, octile as Aa, reachedCount as Ta } from "./nav/findPath.js";
119
- import { simplifyPath as _a, straightenPath as La } from "./nav/straightenPath.js";
120
- import { SaveStore as ga } from "./save/SaveStore.js";
121
- import { MemoryBackend as Pa } from "./save/MemoryBackend.js";
122
- import { WebStorageBackend as ya } from "./save/WebStorageBackend.js";
123
- import { MigrationError as Ra, migrateSave as Fa } from "./save/migrateSave.js";
124
- import { checksum as ba } from "./save/checksum.js";
125
- import { Autosaver as Ia } from "./save/Autosaver.js";
126
- import { transitionTo as va } from "./transitions/transitionTo.js";
127
- import { tweenDone as Ga } from "./transitions/tweenDone.js";
128
- import { FadeTransition as wa } from "./transitions/FadeTransition.js";
129
- import { CrossfadeTransition as Ka } from "./transitions/CrossfadeTransition.js";
130
- import { DitherWipeTransition as Va } from "./transitions/DitherWipeTransition.js";
131
- import { BAYER4 as za, DITHER_LEVELS as Za, ditherCovered as Xa, wipeLevel as ja } from "./transitions/ditherMask.js";
132
- import { Letterbox as Ja } from "./transitions/Letterbox.js";
133
- import { Translator as $a } from "./i18n/Translator.js";
134
- import { CONTEXT_MARK as ri, formatMessage as oi, sourceText as ti } from "./i18n/formatMessage.js";
135
- import { extractStrings as pi } from "./i18n/extractStrings.js";
136
- import { noteContextLoss as ii, rebuildDelayMs as fi, watchContextLoss as xi } from "./diagnostics/contextLoss.js";
137
- import { bootWatch as si } from "./diagnostics/bootWatch.js";
138
- import { describeError as ci, guardRender as di } from "./diagnostics/renderGuard.js";
139
- import { gpuName as Si, maxTextureSize as Ai } from "./diagnostics/gpuInfo.js";
140
- import { countHitches as Ei, looksThrottled as _i, percentile as Li, summarizeFrames as Ci } from "./diagnostics/frameStats.js";
141
- import { FrameSampler as Oi } from "./diagnostics/FrameSampler.js";
142
- import { ErrorDeduper as hi, trimStack as yi } from "./diagnostics/ErrorDeduper.js";
143
- import { captureErrors as Ri } from "./diagnostics/captureErrors.js";
144
- import { DebugOverlay as ki } from "./debug/DebugOverlay.js";
145
- import { FrameStats as Mi } from "./debug/FrameStats.js";
146
- import { ErrorLog as Ni } from "./debug/ErrorLog.js";
147
- import { inspectWorld as Di } from "./debug/inspectWorld.js";
148
- import { DrawCallCounter as Hi } from "./debug/DrawCallCounter.js";
149
- import { BODY_HALF_HEIGHT as Wi, BODY_HALF_WIDTH as Ki, INPUT_FLAG_DASH as Ui, INPUT_STEP_DT as Vi, INPUT_STEP_RATE as Yi, TILE_SIZE as zi } from "./net/constants.js";
150
- import { DIAGONAL as Xi, blocksShot as ji, bodyCollides as qi, createCollisionGrid as Ji, createMover as Qi, isSolidTile as $i, moveX as ef, moveY as rf, stepMover as of } from "./net/movement.js";
151
- import { UPDATE_RECORD_BYTES as mf, decodeSnapshotFrame as pf, decodeUpdates as af, encodeSnapshotFrame as ff, encodeUpdates as xf, quantizeUpdates as lf } from "./net/snapshotCodec.js";
152
- import { CADENCE as nf, cadenceEarly as cf, cadenceNext as df } from "./net/cadence.js";
153
- import { noteServerTime as Sf, resetServerClock as Af, serverNow as Tf, serverOffset as Ef } from "./net/serverClock.js";
154
- import { PredictedMover as Lf } from "./net/PredictedMover.js";
155
- import { InterpolationBuffer as gf } from "./net/InterpolationBuffer.js";
156
- import { Room as Pf } from "./net/Room.js";
157
- import { RoomHost as yf } from "./net/RoomHost.js";
158
- import { CLOSE_NO_ANSWER as Rf, Connection as Ff } from "./net/Connection.js";
159
- import { ApiClient as bf, ApiError as Mf } from "./net/ApiClient.js";
160
- import { reconnectDelay as Nf, shouldReconnect as vf } from "./net/reconnect.js";
161
- import { moverFromWire as Gf, moverToWire as Hf } from "./net/protocol.js";
162
- import { LobbyClient as Wf } from "./net/lobby/LobbyClient.js";
163
- import { LobbyHost as Uf } from "./net/lobby/LobbyHost.js";
164
- import { LobbyRooms as Yf } from "./net/lobby/LobbyRooms.js";
165
- import { Matchmaker as Zf, balanceTeams as Xf } from "./net/lobby/Matchmaker.js";
5
+ import { HiddenPause as x } from "./engine/HiddenPause.js";
6
+ import { World as s, defineComponent as c, defineFields as d, entityIndex as u, system as S } from "./ecs/World.js";
7
+ import { PrefabLibrary as T, definePrefab as E, isPrefabOf as L, prefabPart as _, spawnPrefab as g } from "./ecs/prefab.js";
8
+ import { EventBus as P } from "./events/EventBus.js";
9
+ import { engineSettings as h } from "./settings.js";
10
+ import { Stage as b } from "./core/Stage.js";
11
+ import { Camera as R } from "./core/Camera.js";
12
+ import { baseZoom as k, fitScale as v, worldZoom as I, zoomResolution as M, zoomSteps as D } from "./core/pixelZoom.js";
13
+ import { Clock as G } from "./core/Clock.js";
14
+ import { runDue as H } from "./core/runDue.js";
15
+ import { Tween as K, Tweener as U } from "./core/Tweener.js";
16
+ import { Timeline as Y } from "./core/Timeline.js";
17
+ import { TimelineBuilder as q } from "./core/TimelineBuilder.js";
18
+ import { easeByName as X } from "./core/eases.js";
19
+ import { ObjectFactory as J } from "./core/ObjectFactory.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";
166
182
  export {
167
- dt as AIM_CENTRE,
168
- ut as AIM_EARLY_SLOP,
169
- St as AIM_PRESS_MS,
170
- At as AIM_TAP_SLOP,
171
- $o as Actions,
172
- Ro as Afterimages,
173
- Tt as AimGesture,
174
- $e as AnimStateComponent,
175
- Je as AnimStateMachine,
176
- or as AnimationComponent,
177
- Fe as Animator,
178
- bf as ApiClient,
179
- Mf as ApiError,
180
- ge as AssetLoader,
181
- Te as AtlasBuilder,
182
- Ia as Autosaver,
183
- za as BAYER4,
184
- Br as BLOB47_MASKS,
185
- Rr as BLOB_E,
186
- Fr as BLOB_N,
187
- kr as BLOB_NE,
188
- br as BLOB_NW,
189
- Mr as BLOB_S,
190
- Ir as BLOB_SE,
191
- Nr as BLOB_SW,
192
- vr as BLOB_W,
193
- Wi as BODY_HALF_HEIGHT,
194
- Ki as BODY_HALF_WIDTH,
195
- jm as Birds,
196
- xe as BitmapLabel,
197
- kp as Body,
198
- Jm as Butterflies,
199
- nf as CADENCE,
200
- Rf as CLOSE_NO_ANSWER,
201
- jp as COLLIDER_COLORS,
202
- ri as CONTEXT_MARK,
203
- O as Camera,
204
- ue as CanvasTexture,
205
- rp as ChimneySmoke,
206
- b as Clock,
207
- Nm as ColorGrade,
208
- Ff as Connection,
209
- Mp as Contact,
210
- Ip as ContactPoint,
211
- Ka as CrossfadeTransition,
212
- Xi as DIAGONAL,
213
- Za as DITHER_LEVELS,
214
- Cm as DayClock,
215
- ki as DebugOverlay,
216
- Va as DitherWipeTransition,
217
- Hi as DrawCallCounter,
218
- Zm as Drift,
219
- Dr as EDGE_E,
220
- Gr as EDGE_N,
221
- Hr as EDGE_S,
222
- wr as EDGE_W,
223
- np as Emitter,
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,
222
+ R as Camera,
223
+ ye as CanvasTexture,
224
+ Cm as ChimneySmoke,
225
+ G as Clock,
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,
224
244
  o as Engine,
225
- hi as ErrorDeduper,
226
- Ni as ErrorLog,
227
- T as EventBus,
228
- $p as FACE_BOTTOM,
229
- ea as FACE_LEFT,
230
- ra as FACE_RIGHT,
231
- oa as FACE_TOP,
232
- ar as FLIP_D,
233
- ir as FLIP_H,
234
- fr as FLIP_V,
235
- wa as FadeTransition,
236
- $m as Fireflies,
245
+ If as ErrorDeduper,
246
+ Uf as ErrorLog,
247
+ P as EventBus,
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,
237
257
  f as FixedLoop,
238
- Po as FloatingText,
239
- zo as Footsteps,
240
- Oi as FrameSampler,
241
- Mi as FrameStats,
242
- Z as Graphics,
243
- re as Group,
244
- Ao as HEAVY_FLASH_GAP_MS,
245
- ao as HUMANOID_CLIPS,
246
- io as HUMANOID_POSES,
247
- eo as HUMANOID_RIG,
248
- qt as HapticGate,
249
- Jt as Haptics,
250
- l as HiddenPause,
251
- Ui as INPUT_FLAG_DASH,
252
- Vi as INPUT_STEP_DT,
253
- Yi as INPUT_STEP_RATE,
254
- j as Image,
255
- gf as InterpolationBuffer,
256
- Jo as Keyboard,
257
- bt as Keymap,
258
- Ot as LOCK_KEEP_RANGE,
259
- Pt as LOCK_PICK_CONE,
260
- ht as LOCK_PICK_RANGE,
261
- Ja as Letterbox,
262
- uo as LightLayer,
263
- Wf as LobbyClient,
264
- Uf as LobbyHost,
265
- Yf as LobbyRooms,
266
- nt as LongPress,
267
- vp as MAX_POLYGON_VERTICES,
268
- Zf as Matchmaker,
269
- Pa as MemoryBackend,
270
- Ra as MigrationError,
271
- ma as MinHeap,
272
- Do as MusicChannel,
273
- Io as MusicPlayer,
274
- aa as NAV_STEPS,
275
- Y as ObjectFactory,
276
- et as PAD_BUTTONS,
277
- tp as Parallax,
278
- pp as ParallaxLayer,
279
- Sp as ParticleBudget,
280
- dp as ParticleSim,
281
- Rp as PhysicsWorld,
282
- ce as Pointer,
283
- xo as PosePlayer,
284
- Lf as PredictedMover,
285
- Ze as Prepainter,
286
- To as RECOIL_MS,
287
- so as RIG_PARTS,
288
- pe as Rectangle,
289
- no as RigView,
290
- Pf as Room,
291
- yf as RoomHost,
292
- it as STICK_DEAD_ZONE,
293
- Xo as SYNTH_RATE,
294
- ga as SaveStore,
295
- m as Scene,
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,
270
+ x as HiddenPause,
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,
299
+ J as ObjectFactory,
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,
310
+ T as PrefabLibrary,
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,
321
+ p as Scene,
296
322
  a as SceneManager,
297
- Qr as Skeleton,
298
- ko as SoundEngine,
299
- tr as SpriteComponent,
300
- C as Stage,
301
- zi as TILE_SIZE,
302
- yt as TargetLock,
303
- ie as Text,
304
- Se as TextureRegistry,
305
- qr as TilemapView,
306
- H as Timeline,
307
- W as TimelineBuilder,
308
- $a as Translator,
309
- v as Tween,
310
- D as Tweener,
311
- mf as UPDATE_RECORD_BYTES,
312
- Fm as WeatherLayer,
313
- ya as WebStorageBackend,
314
- n as World,
315
- Ve as addAsepriteTextures,
316
- le as addLabelGlyphs,
317
- pt as aimAxis,
318
- Et as aimPoint,
319
- er as animStateSystem,
320
- mr as animationSystem,
321
- _e as atlasPageLimit,
322
- Wr as autotile,
323
- Kr as autotileAt,
324
- Xf as balanceTeams,
325
- h as baseZoom,
326
- Dm as birdFrame,
327
- te as blendLayer,
328
- oo as blendPose,
329
- Ur as blob47Index,
330
- Vr as blobMask,
331
- ji as blocksShot,
332
- qi as bodyCollides,
333
- si as bootWatch,
334
- Gm as boxInView,
335
- cf as cadenceEarly,
336
- df as cadenceNext,
337
- ia as canStep,
338
- Ri as captureErrors,
339
- ba as checksum,
340
- ot as chordHeld,
341
- J as clearSilhouettes,
342
- be as clipMarkers,
343
- gm as clockText,
344
- he as collectAtlasPages,
345
- qp as colliderColor,
346
- Sr as collisionFromIntGrid,
347
- Ar as collisionFromTiled,
348
- Ei as countHitches,
349
- Ji as createCollisionGrid,
350
- Qi as createMover,
351
- im as currentOrientationKind,
352
- pf as decodeSnapshotFrame,
353
- af as decodeUpdates,
323
+ re as SharpText,
324
+ xo as Skeleton,
325
+ Uo as SoundEngine,
326
+ at as SpatialAudio,
327
+ Ml as SpatialHash,
328
+ ur as SpriteComponent,
329
+ b as Stage,
330
+ el as TILE_SIZE,
331
+ Kt as TargetLock,
332
+ Ee as Text,
333
+ be as TextureRegistry,
334
+ fo as TilemapView,
335
+ Y as Timeline,
336
+ q as TimelineBuilder,
337
+ af as Translator,
338
+ K as Tween,
339
+ U as Tweener,
340
+ sl as UPDATE_RECORD_BYTES,
341
+ Qp as WeatherLayer,
342
+ Ii as WebStorageBackend,
343
+ s as World,
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,
358
+ k as baseZoom,
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,
354
393
  c as defineComponent,
355
394
  d as defineFields,
356
- ci as describeError,
357
- _m as detectTouch,
358
- Xa as ditherCovered,
359
- _t as dragSlop,
360
- Jp as drawColliders,
361
- gp as dueParticles,
362
- ye as duplicateFrames,
363
- U as easeByName,
364
- Yr as edgeMask,
365
- Ho as elementVolumeLocked,
366
- ff as encodeSnapshotFrame,
367
- xf as encodeUpdates,
368
- _ as engineSettings,
369
- em as enterFullscreen,
370
- Er as entitiesOf,
395
+ E as definePrefab,
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,
404
+ X as easeByName,
405
+ to as edgeMask,
406
+ Jo as elementVolumeLocked,
407
+ ul as encodeSnapshotFrame,
408
+ Sl as encodeUpdates,
409
+ h as engineSettings,
410
+ gp as enterFullscreen,
411
+ Fr as entitiesOf,
371
412
  u as entityIndex,
372
- rm as exitFullscreen,
373
- um as exitPointerLock,
374
- pi as extractStrings,
375
- Q as fillSolid,
376
- ua as findPath,
377
- Hm as firefliesOut,
378
- wm as fireflyGlow,
379
- Wm as fireflyOffset,
380
- y as fitScale,
381
- Km as flockSlot,
382
- Sa as floodFill,
383
- sm as followReducedMotion,
384
- oi as formatMessage,
385
- Me as frameNamed,
386
- om as fullscreenSupported,
387
- xr as gidOf,
388
- Si as gpuName,
389
- bm as gradeAt,
390
- di as guardRender,
391
- Uo as hasTakes,
392
- ym as hash01,
393
- Eo as hitStopMs,
394
- _o as hurtFlashGapMs,
395
- Lo as hurtFlashMs,
396
- yo as inView,
397
- Di as inspectWorld,
398
- se as installLabelFont,
399
- _r as intGridAt,
400
- tm as isFullscreen,
401
- fa as isOpen,
402
- Sm as isPointerLocked,
403
- $i as isSolidTile,
404
- Dt as isTouchUi,
405
- Bt as keptTarget,
406
- Mt as keyLabel,
407
- It as keymapStorage,
408
- lr as layerByName,
409
- Or as ldtkExternalLevels,
410
- Ep as lerpColor,
411
- Lr as levelAt,
412
- Cr as levelByName,
413
- Ye as loadAseprite,
414
- Pr as loadLdtkLevel,
415
- fm as lockOrientation,
416
- _i as looksThrottled,
417
- Ai as maxTextureSize,
418
- Nt as mergeKeymap,
419
- Wp as mergeTileRects,
420
- Fa as migrateSave,
421
- Om as mixRgb,
422
- Mm as mixToWhite,
423
- ef as moveX,
424
- rf as moveY,
425
- Gf as moverFromWire,
426
- Hf as moverToWire,
427
- No as music,
428
- xa as navGrid,
429
- la as navGridFromCollision,
430
- sa as nearWallCost,
431
- ca as nearestOpen,
432
- Rt as nearestTarget,
433
- ii as noteContextLoss,
434
- Sf as noteServerTime,
435
- sr as objectsOf,
436
- Aa as octile,
437
- Wt as onAppResume,
438
- mm as onFullscreenChange,
439
- Am as onPointerLockChange,
440
- nm as onReducedMotionChange,
441
- to as overlay,
442
- zr as paintTerrain,
443
- ip as parallaxOrigin,
444
- Ie as parseAseprite,
445
- Be as parseAtlas,
446
- tt as parseChord,
447
- hr as parseLdtk,
448
- nr as parseTiled,
449
- Ap as particleBudget,
450
- Li as percentile,
451
- Yp as physicsSystem,
452
- Um as pickInView,
453
- Ft as pickTarget,
454
- fp as placeAxis,
455
- Le as planAtlas,
456
- Dp as polygonCentroid,
457
- Gp as polygonShape,
458
- cm as prefersReducedMotion,
459
- Vm as puffOffset,
460
- lf as quantizeUpdates,
461
- Ta as reachedCount,
462
- fi as rebuildDelayMs,
463
- Co as recoilAt,
464
- go as recoilPx,
465
- Nf as reconnectDelay,
466
- Zr as reduceBlobMask,
467
- Wo as registerSounds,
468
- Vo as registerTakes,
469
- Hp as regularPolygon,
470
- jo as renderRecipe,
471
- Tm as requestPointerLock,
472
- Af as resetServerClock,
473
- Oe as resolveUrl,
474
- Yt as rumble,
475
- zt as rumblePad,
476
- Zt as rumbleParams,
477
- I as runDue,
478
- _p as sampleColor,
479
- Lp as sampleCurve,
480
- Op as sampleRange,
481
- Pp as scaleCount,
482
- hp as seededRandom,
483
- Tf as serverNow,
484
- Ef as serverOffset,
485
- Gt as setNativeShell,
486
- Ht as setTouchOverrideKey,
487
- vf as shouldReconnect,
488
- _a as simplifyPath,
489
- we as sliceAt,
490
- We as sliceBorders,
491
- Ke as sliceNamed,
492
- $ as solidSilhouette,
493
- bo as sound,
494
- Ym as sourceOf,
495
- ti as sourceText,
496
- xp as spanVisible,
497
- Lt as spotReach,
498
- Ct as spotShare,
499
- yp as spreadAngle,
500
- of as stepMover,
501
- ft as stickActive,
502
- xt as stickToAxis,
503
- lt as stickVector,
504
- Xt as stopRumble,
505
- La as straightenPath,
506
- Ci as summarizeFrames,
507
- Zp as syncToBody,
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,
421
+ v as fitScale,
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,
451
+ L as isPrefabOf,
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,
509
+ _ as prefabPart,
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,
533
+ H as runDue,
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,
558
+ g as spawnPrefab,
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,
508
571
  S as system,
509
- ve as tagDirection,
510
- De as tagFrames,
511
- Ge as tagRepeat,
512
- cr as tileAt,
513
- Kp as tileBodies,
514
- Up as tileBodiesFromGrid,
515
- dr as tileRect,
516
- Ut as timeoutSignal,
517
- Pm as tintNight,
518
- pm as toggleFullscreen,
519
- va as transitionTo,
520
- yi as trimStack,
521
- Ga as tweenDone,
522
- xm as unlockOrientation,
523
- Xr as updateAutotile,
524
- mo as upperOver,
525
- Qt as vibrate,
526
- xi as watchContextLoss,
527
- Bm as weatherAt,
528
- ja as wipeLevel,
529
- je as workerPainter,
530
- B as worldZoom,
531
- lp as wrap,
532
- R as zoomResolution,
533
- F as zoomSteps
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,
596
+ I as worldZoom,
597
+ km as wrap,
598
+ M as zoomResolution,
599
+ D as zoomSteps
534
600
  };