@zylem/game-lib 0.9.6 → 0.9.7

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 (125) hide show
  1. package/dist/actions.d.ts +3 -3
  2. package/dist/api/game-lib.api.json +99547 -42343
  3. package/dist/api/game-lib.api.md +3809 -682
  4. package/dist/api/game-lib.d.ts +8657 -687
  5. package/dist/api/game-lib.typedoc.json +325514 -191323
  6. package/dist/behavior/action/fighting.d.ts +1 -0
  7. package/dist/behavior/action/fighting.js +1 -0
  8. package/dist/behavior/action/pinball.d.ts +1 -0
  9. package/dist/behavior/action/pinball.js +1 -0
  10. package/dist/behavior/action/platform.d.ts +1 -0
  11. package/dist/behavior/action/platform.js +1 -0
  12. package/dist/behavior/action/rhythm.d.ts +1 -0
  13. package/dist/behavior/action/rhythm.js +1 -0
  14. package/dist/behavior/action/shooter/first-person.d.ts +1 -0
  15. package/dist/behavior/action/shooter/first-person.js +1 -0
  16. package/dist/behavior/action/shooter/shoot-em-up.d.ts +1 -0
  17. package/dist/behavior/action/shooter/shoot-em-up.js +1 -0
  18. package/dist/behavior/action/shooter.d.ts +1 -0
  19. package/dist/behavior/action/shooter.js +1 -0
  20. package/dist/behavior/action/stealth.d.ts +1 -0
  21. package/dist/behavior/action/stealth.js +1 -0
  22. package/dist/behavior/action/survival.d.ts +1 -0
  23. package/dist/behavior/action/survival.js +1 -0
  24. package/dist/behavior/action-adventure.d.ts +1 -0
  25. package/dist/behavior/action-adventure.js +1 -0
  26. package/dist/behavior/action.d.ts +1 -0
  27. package/dist/behavior/action.js +1 -0
  28. package/dist/behavior/genre-map.d.ts +1 -0
  29. package/dist/behavior/genre-map.js +1 -0
  30. package/dist/behavior/mechanics.d.ts +1 -0
  31. package/dist/behavior/mechanics.js +1 -0
  32. package/dist/behavior/puzzle/physics.d.ts +1 -0
  33. package/dist/behavior/puzzle/physics.js +1 -0
  34. package/dist/behavior/puzzle/tile-matching.d.ts +1 -0
  35. package/dist/behavior/puzzle/tile-matching.js +1 -0
  36. package/dist/behavior/puzzle.d.ts +1 -0
  37. package/dist/behavior/puzzle.js +1 -0
  38. package/dist/behavior/role-playing/action-rpg.d.ts +1 -0
  39. package/dist/behavior/role-playing/action-rpg.js +1 -0
  40. package/dist/behavior/role-playing/monster-taming.d.ts +1 -0
  41. package/dist/behavior/role-playing/monster-taming.js +1 -0
  42. package/dist/behavior/role-playing/tactical-rpg.d.ts +1 -0
  43. package/dist/behavior/role-playing/tactical-rpg.js +1 -0
  44. package/dist/behavior/role-playing/turn-based.d.ts +1 -0
  45. package/dist/behavior/role-playing/turn-based.js +1 -0
  46. package/dist/behavior/role-playing.d.ts +1 -0
  47. package/dist/behavior/role-playing.js +1 -0
  48. package/dist/behavior/simulation/life.d.ts +1 -0
  49. package/dist/behavior/simulation/life.js +1 -0
  50. package/dist/behavior/simulation/vehicle/racing.d.ts +1 -0
  51. package/dist/behavior/simulation/vehicle/racing.js +1 -0
  52. package/dist/behavior/simulation/vehicle.d.ts +1 -0
  53. package/dist/behavior/simulation/vehicle.js +1 -0
  54. package/dist/behavior/simulation.d.ts +1 -0
  55. package/dist/behavior/simulation.js +1 -0
  56. package/dist/behavior/sports/golf.d.ts +1 -0
  57. package/dist/behavior/sports/golf.js +1 -0
  58. package/dist/behavior/sports/racing.d.ts +1 -0
  59. package/dist/behavior/sports/racing.js +1 -0
  60. package/dist/behavior/sports/racket.d.ts +1 -0
  61. package/dist/behavior/sports/racket.js +1 -0
  62. package/dist/behavior/sports/skate.d.ts +1 -0
  63. package/dist/behavior/sports/skate.js +1 -0
  64. package/dist/behavior/sports.d.ts +1 -0
  65. package/dist/behavior/sports.js +1 -0
  66. package/dist/behavior/strategy/real-time-tactics.d.ts +1 -0
  67. package/dist/behavior/strategy/real-time-tactics.js +1 -0
  68. package/dist/behavior/strategy/tower-defense.d.ts +1 -0
  69. package/dist/behavior/strategy/tower-defense.js +1 -0
  70. package/dist/behavior/strategy/turn-based-tactics.d.ts +1 -0
  71. package/dist/behavior/strategy/turn-based-tactics.js +1 -0
  72. package/dist/behavior/strategy.d.ts +1 -0
  73. package/dist/behavior/strategy.js +1 -0
  74. package/dist/behavior.d.ts +34 -0
  75. package/dist/bridge.d.ts +2 -2
  76. package/dist/bridge.js +1 -1
  77. package/dist/catalog.d.ts +1 -1
  78. package/dist/catalog.js +1 -1
  79. package/dist/chunk-4DAITCJS.js +1 -0
  80. package/dist/chunk-63T3K5EQ.js +1 -0
  81. package/dist/chunk-AJSIVGDX.js +1 -0
  82. package/dist/{chunk-Y23IJJPD.js → chunk-CVKEWWIH.js} +1 -1
  83. package/dist/chunk-DYD7MDWO.js +1 -0
  84. package/dist/chunk-IHGRFR4H.js +1 -0
  85. package/dist/{chunk-RPMV7GDX.js → chunk-JJEYLGD2.js} +2 -2
  86. package/dist/chunk-KL7NGD76.js +1 -0
  87. package/dist/chunk-M2FZ224T.js +1 -0
  88. package/dist/chunk-MJ7RGE47.js +1 -0
  89. package/dist/chunk-Q22Z4PBD.js +19 -0
  90. package/dist/{chunk-KIFB427K.js → chunk-SD7EHS4W.js} +1 -1
  91. package/dist/chunk-UKNMIHAP.js +1 -0
  92. package/dist/chunk-Y5IU6IA5.js +1 -0
  93. package/dist/cinematics.d.ts +7 -5
  94. package/dist/core.d.ts +11 -9
  95. package/dist/core.js +1 -1
  96. package/dist/{debug-state-DhVkY2aM.d.ts → debug-state-BgX5Q0Ff.d.ts} +1 -1
  97. package/dist/debug.d.ts +6 -125
  98. package/dist/{entity-DC0P747T.d.ts → entity-CY75JJSw.d.ts} +78 -4
  99. package/dist/{entity-type-map-B0S5cfv7.d.ts → entity-type-map-BMaPY8cd.d.ts} +2 -2
  100. package/dist/entity.d.ts +5 -5
  101. package/dist/entity.js +1 -1
  102. package/dist/{game-mu6OSCrq.d.ts → game-CmkhPP-9.d.ts} +3 -3
  103. package/dist/game-default-LAGMEHNQ.js +1 -0
  104. package/dist/graphics.d.ts +3 -3
  105. package/dist/graphics.js +1 -1
  106. package/dist/{material-CxxAyJYp.d.ts → material-D1IVeQc5.d.ts} +48 -2
  107. package/dist/placement-session-BNQoL7Jb.d.ts +82 -0
  108. package/dist/placement.d.ts +52 -0
  109. package/dist/placement.js +1 -0
  110. package/dist/public.d.ts +11 -8
  111. package/dist/public.js +1 -1
  112. package/dist/{stage-B_KdSEK6.d.ts → stage-CCGJh9TD.d.ts} +176 -7
  113. package/dist/transform-gizmo-DappLQ9w.d.ts +123 -0
  114. package/dist/web-components.d.ts +9 -7
  115. package/dist/{zylem-camera-CWhIGXlW.d.ts → zylem-camera-BA3VPFlS.d.ts} +9 -0
  116. package/package.json +147 -7
  117. package/dist/chunk-5V52N34T.js +0 -1
  118. package/dist/chunk-6FGXC4T6.js +0 -19
  119. package/dist/chunk-FUZDTRCU.js +0 -1
  120. package/dist/chunk-P6IOYQHU.js +0 -1
  121. package/dist/chunk-QB3NL7VQ.js +0 -1
  122. package/dist/chunk-VKWJHFUR.js +0 -1
  123. package/dist/chunk-VXE3CV3K.js +0 -1
  124. package/dist/chunk-YRHRMVHS.js +0 -1
  125. package/dist/game-default-VUMUMTXA.js +0 -1
package/dist/public.d.ts CHANGED
@@ -1,17 +1,18 @@
1
- export { A as AspectRatio, f as AspectRatioValue, D as DeviceProfile, G as Game, b as GameConfigLike, d as GameDeviceConfig, a as GameLoadingEvent, R as ResolutionInput, e as ResolveGameConfigRuntime, j as RetroPreset, k as RetroPresetKey, l as RetroResolution, c as createGame, g as gameConfig, h as getDisplayAspect, i as getPresetResolution, p as parseResolution } from './game-mu6OSCrq.js';
1
+ export { A as AspectRatio, f as AspectRatioValue, D as DeviceProfile, G as Game, b as GameConfigLike, d as GameDeviceConfig, a as GameLoadingEvent, R as ResolutionInput, e as ResolveGameConfigRuntime, j as RetroPreset, k as RetroPresetKey, l as RetroResolution, c as createGame, g as gameConfig, h as getDisplayAspect, i as getPresetResolution, p as parseResolution } from './game-CmkhPP-9.js';
2
2
  export { G as GameInputConfig, a as GameInputPlayerConfig, K as KeyboardMapping, M as MouseConfig, b as MouseMapping, V as VirtualTouchButtonConfig, d as VirtualTouchButtonSlot, c as VirtualTouchButtonsConfig, e as VirtualTouchConfig, f as VirtualTouchJoystickConfig, g as VirtualTouchJoysticksConfig, h as VirtualTouchPosition, i as VirtualTouchStyle, Z as ZylemGameConfig } from './game-interfaces-vF5sRi1n.js';
3
- export { e as CameraManager, d as CameraOptions, C as CameraWrapper, l as FirstPersonOptions, f as FirstPersonPerspective, k as Fixed2DOptions, F as Fixed2DPerspective, n as IsometricOptions, I as IsometricPerspective, P as PerspectiveOptions, R as RenderBundleManager, p as RenderStrategyManager, m as SecondPersonOptions, g as SecondPersonPerspective, S as StageConfigLike, a as StageOptions, j as ThirdPersonOptions, T as ThirdPersonPerspective, o as TopDownOptions, h as TopDownPerspective, b as createCamera, i as createPerspective, c as createStage, s as stageConfig } from './stage-B_KdSEK6.js';
3
+ export { e as CameraManager, d as CameraOptions, C as CameraWrapper, l as FirstPersonOptions, f as FirstPersonPerspective, k as Fixed2DOptions, F as Fixed2DPerspective, n as IsometricOptions, I as IsometricPerspective, P as PerspectiveOptions, R as RenderBundleManager, p as RenderStrategyManager, m as SecondPersonOptions, g as SecondPersonPerspective, S as StageConfigLike, a as StageOptions, j as ThirdPersonOptions, T as ThirdPersonPerspective, o as TopDownOptions, h as TopDownPerspective, b as createCamera, i as createPerspective, c as createStage, s as stageConfig } from './stage-CCGJh9TD.js';
4
4
  export { CameraFeedOptions, FollowTargetOptions, LevelStage, PlatformAxisMode, PlatformAxisModes, PlatformFollowOptions, RenderCategory, STAGE_STATE_CHANGE, StageManager, StageStateChangeEvent, StrategyPanBehavior, StrategyPanInput, StrategyPanOptions, StrategyPointer, StreamLevelOptions, StreamLevelResult, Vect3, createFollowTarget, createPlatformFollow, createStrategyPan, dispatchStageState, entitySpawner, getActiveLevelDocument, initStageStateDispatcher, isManagedRenderEntity, resolveRenderCategory, setCameraFeed, setStageFrameProfilerEnabled, stageState, streamLevel, streamLevelOnStage, usesManagedRenderPath, vessel } from './core.js';
5
5
  export { L as LevelDocument } from './level-types-D10LiOcn.js';
6
6
  export { BRIDGE_READY_EVENT, BridgeChannel, BridgeDebugTool, BridgeHandler, GameLoadingPayload as BridgeLoadingPayload, BridgeMessageType, BridgeMessages, BridgeNdc, BridgeVec3, CameraPosePayload, CutsceneLoadPayload, CutscenePlaybackState, CutsceneStatusPayload, CutsceneViewPayload, EditorToGameMessages, EntityApplySwatchPayload, EntityPickPayload, EntityPickResultPayload, EntitySummaryPayload, EntitySwatchAppliedPayload, EntityThumbnailPayload, GameConfigPayload, GameToEditorMessages, GameVariablePayload, LevelBuffer, StageConfigPayload, StageSnapshotPayload, SwatchApplyFailureReason, SwatchApplyResult, SwatchKind, SwatchSpec, ZylemBridge, announceBridgeReady, applySwatchesToSelection, getZylemBridge } from '@zylem/bridge';
7
+ export { A as ArmPlacementOptions, E as EntityRepresentative, a as EntityRepresentativeOptions, P as PlacementSession, R as RepresentativeFrame, b as RepresentativeLook, c as RepresentativeSource, e as entityRepresentative } from './placement-session-BNQoL7Jb.js';
7
8
  export { f as EntityBlueprint, j as EntityJson, d as EntityJsonSchema, E as EntitySchema, i as LineEntityData, L as LineEntityDataSchema, h as SpriteEntityData, b as SpriteEntityDataSchema, S as StageBlueprint, k as StageJson, e as StageJsonSchema, c as StageSchema, g as TextEntityData, T as TextEntityDataSchema, V as Vector2Schema, a as Vector3TupleSchema } from './blueprints-TbGY-h53.js';
8
9
  export { A as AnalogState, d as ButtonName, B as ButtonState, c as InputGamepad, b as InputPlayer, e as InputPlayerNumber, f as InputProvider, I as Inputs, L as LoadingEvent, a as SetupContext, S as StageNavigationOptions, U as UpdateContext } from './base-node-life-cycle-BK9xebT9.js';
9
10
  export { S as StageTransitionConfig, a as StageTransitionEasing, Z as ZylemTransitionShader, c as crossfadeTransitionShader } from './stage-transition-CmGpV4tc.js';
10
- export { g as CameraAction, f as CameraBehavior, d as CameraContext, e as CameraPerspective, k as CameraPipeline, h as CameraPipelineState, C as CameraPose, j as CameraProjection, P as PerspectiveType, a as Perspectives, c as PoseDelta, T as TransformLike, V as Viewport, Z as ZylemPostEffect, b as ZylemRenderer, i as isWebGPUSupported } from './zylem-camera-CWhIGXlW.js';
11
+ export { g as CameraAction, f as CameraBehavior, d as CameraContext, e as CameraPerspective, k as CameraPipeline, h as CameraPipelineState, C as CameraPose, j as CameraProjection, P as PerspectiveType, a as Perspectives, c as PoseDelta, T as TransformLike, V as Viewport, Z as ZylemPostEffect, b as ZylemRenderer, i as isWebGPUSupported } from './zylem-camera-BA3VPFlS.js';
11
12
  export { S as StageEntity } from './entity-BIf_a4dl.js';
12
13
  export { f as VEC2_ONE, g as VEC2_ZERO, h as VEC3_ONE, i as VEC3_ZERO, V as Vec2, a as Vec2Components, b as Vec2Input, c as Vec3, d as Vec3Components, e as Vec3Input, n as normalizeVec2, j as normalizeVec3, t as toThreeVector2, k as toThreeVector3 } from './vector-D3eDzvcA.js';
13
- export { A as ACTOR_TYPE, a1 as AmbientLightOptions, B as BOX_TYPE, F as CONE_TYPE, L as CYLINDER_TYPE, C as CollisionShapeType, D as DISK_TYPE, a3 as DirectionalLightOptions, am as EntityForType, al as EntityTypeMap, a9 as FOG_TYPE, a2 as HemisphereLightOptions, $ as LIGHT_TYPE, ac as LINE_TYPE, a6 as LightShadowOptions, af as LinePickResult, o as OnEnterParams, p as OnExitParams, O as OnHeldParams, W as PARTICLE_SYSTEM_TYPE, Q as PILL_TYPE, P as PLANE_TYPE, I as PYRAMID_TYPE, a4 as PointLightOptions, R as RECT_TYPE, w as RectShape, S as SPHERE_TYPE, f as SPRITE_TYPE, ak as ScreenAnchor, a5 as SpotLightOptions, h as SpriteAnimation, g as SpriteImage, i as SpriteSheet, T as TEXT_TYPE, n as ZONE_TYPE, r as ZylemActor, Z as ZylemBox, E as ZylemCone, K as ZylemCylinder, y as ZylemDisk, a8 as ZylemFog, ai as ZylemFogHeightOptions, aj as ZylemFogNoiseOptions, ag as ZylemFogOptions, ah as ZylemFogType, _ as ZylemLight, a0 as ZylemLightOptions, ab as ZylemLine, ae as ZylemLineOptions, V as ZylemParticleSystem, X as ZylemParticleSystemOptions, N as ZylemPill, k as ZylemPlane, H as ZylemPyramid, v as ZylemRect, b as ZylemSphere, e as ZylemSprite, t as ZylemText, m as ZylemZone, q as createActor, c as createBox, z as createCone, J as createCylinder, x as createDisk, a7 as createFog, Y as createLight, aa as createLine, U as createParticleSystem, M as createPill, j as createPlane, G as createPyramid, u as createRect, a as createSphere, d as createSprite, s as createText, l as createZone, ad as pickZylemLine } from './entity-type-map-B0S5cfv7.js';
14
- export { A as Action, C as CollisionComponent, G as GameEntity, a as GameEntityOptions, b as boxCollision, d as coneCollision, c as create, e as cylinderCollision, x as getRotation, f as pillCollision, g as planeCollision, p as pyramidCollision, i as rotateEuler, r as rotateInDirection, j as rotateX, k as rotateY, h as rotateYEuler, l as rotateZ, w as setRotation, q as setRotationDegrees, u as setRotationDegreesX, t as setRotationDegreesY, v as setRotationDegreesZ, n as setRotationX, m as setRotationY, o as setRotationZ, s as sphereCollision, z as zoneCollision } from './entity-DC0P747T.js';
14
+ export { A as ACTOR_TYPE, a1 as AmbientLightOptions, B as BOX_TYPE, F as CONE_TYPE, L as CYLINDER_TYPE, C as CollisionShapeType, D as DISK_TYPE, a3 as DirectionalLightOptions, am as EntityForType, al as EntityTypeMap, a9 as FOG_TYPE, a2 as HemisphereLightOptions, $ as LIGHT_TYPE, ac as LINE_TYPE, a6 as LightShadowOptions, af as LinePickResult, o as OnEnterParams, p as OnExitParams, O as OnHeldParams, W as PARTICLE_SYSTEM_TYPE, Q as PILL_TYPE, P as PLANE_TYPE, I as PYRAMID_TYPE, a4 as PointLightOptions, R as RECT_TYPE, w as RectShape, S as SPHERE_TYPE, f as SPRITE_TYPE, ak as ScreenAnchor, a5 as SpotLightOptions, h as SpriteAnimation, g as SpriteImage, i as SpriteSheet, T as TEXT_TYPE, n as ZONE_TYPE, r as ZylemActor, Z as ZylemBox, E as ZylemCone, K as ZylemCylinder, y as ZylemDisk, a8 as ZylemFog, ai as ZylemFogHeightOptions, aj as ZylemFogNoiseOptions, ag as ZylemFogOptions, ah as ZylemFogType, _ as ZylemLight, a0 as ZylemLightOptions, ab as ZylemLine, ae as ZylemLineOptions, V as ZylemParticleSystem, X as ZylemParticleSystemOptions, N as ZylemPill, k as ZylemPlane, H as ZylemPyramid, v as ZylemRect, b as ZylemSphere, e as ZylemSprite, t as ZylemText, m as ZylemZone, q as createActor, c as createBox, z as createCone, J as createCylinder, x as createDisk, a7 as createFog, Y as createLight, aa as createLine, U as createParticleSystem, M as createPill, j as createPlane, G as createPyramid, u as createRect, a as createSphere, d as createSprite, s as createText, l as createZone, ad as pickZylemLine } from './entity-type-map-BMaPY8cd.js';
15
+ export { A as Action, C as CollisionComponent, D as DroppableAreaOptions, G as GameEntity, d as GameEntityOptions, H as HoverAreaOptions, a as PlacementPointContext, P as PointerAreaContext, b as PointerTargetEntity, e as boxCollision, f as coneCollision, c as create, g as cylinderCollision, B as getRotation, h as pillCollision, i as planeCollision, p as pyramidCollision, k as rotateEuler, r as rotateInDirection, l as rotateX, m as rotateY, j as rotateYEuler, n as rotateZ, y as setRotation, u as setRotationDegrees, w as setRotationDegreesX, v as setRotationDegreesY, x as setRotationDegreesZ, q as setRotationX, o as setRotationY, t as setRotationZ, s as sphereCollision, z as zoneCollision } from './entity-CY75JJSw.js';
15
16
  export { IconSize, IconSizePreset, TemplateFactory, boxMesh, coneMesh, createCooldownIcon, createEntity, createEntityFactory, cylinderMesh, destroy, pillMesh, pyramidMesh, sphereMesh } from './entity.js';
16
17
  export { BehaviorDescriptor, BehaviorHandle, BehaviorRef, BehaviorSystem, BehaviorSystemFactory, BoundaryRicochet3DCoordinator, BoundaryRicochet3DEntity, BoundaryRicochetCoordinator, BoundaryRicochetEntity, BoundaryRicochetUpdate, BurstParticlePresetOptions, CooldownBehavior, CooldownConfig, CooldownEntry, CooldownHandle, CooldownOptions, DefineBehaviorConfig, Destructible3DBehavior, Destructible3DBehaviorOptions, Destructible3DColliderOptions, Destructible3DFragmentColliderShape, Destructible3DFragmentPhysicsOptions, Destructible3DHandle, DestructibleMesh, DestructiblePrebakeWorkerAPI, FacingAngle2DEntity, FirstPersonBehavior, FirstPersonBehaviorOptions, FirstPersonContext, FirstPersonEntity, FirstPersonEvent, FirstPersonFSM, FirstPersonInputComponent, FirstPersonMovementComponent, FirstPersonPresentation, FirstPersonShooterCoordinator, FirstPersonShooterEntity, FirstPersonShooterInput, FirstPersonState, FirstPersonStateComponent, FractureOptions, FractureOptionsInput, JumpConfig2D, JumpConfig3D, JumpContext2D, JumpContext3D, JumpInput2D, JumpInput3D, JumpState2D, JumpState3D, Jumper2DBehavior, Jumper2DBehaviorOptions, Jumper2DEntity, Jumper2DEvent, Jumper2DFSM, Jumper2DState, Jumper3DBehavior, Jumper3DBehaviorOptions, Jumper3DEntity, Jumper3DEvent, Jumper3DFSM, Jumper3DState, MultidirectionalSpaceShooterCoordinator, MultidirectionalSpaceShooterEntity, MultidirectionalSpaceShooterInput, ParticleEffectDefinition, ParticleEmitterBehavior, ParticleEmitterBehaviorOptions, ParticleEmitterHandle, ParticleMagicAgency, ParticleMagicAlignment, ParticleMagicModifierInput, ParticleMagicModifierOptions, ParticleMagicOrder, ParticleMagicRealityEffect, ParticleMagicTemperament, ParticlePresetMaterialOptions, PhysicsBodyComponent, PlainBufferGeometryPayload, PlainFractureOptions, Platformer2DBehavior, Platformer2DBehaviorOptions, Platformer2DCollisionContext, Platformer2DContext, Platformer2DEntity, Platformer2DEvent, Platformer2DFSM, Platformer2DInputComponent, Platformer2DMovementComponent, Platformer2DState, Platformer2DStateComponent, Platformer3DBehavior, Platformer3DBehaviorOptions, Platformer3DContext, Platformer3DEntity, Platformer3DEvent, Platformer3DFSM, Platformer3DInputComponent, Platformer3DMovementComponent, Platformer3DState, Platformer3DStateComponent, PlatformerCollisionContext, PlayerInput, PrebakeWorkerRequest, PrebakeWorkerResponse, ResolvedAim2D, Ricochet2DBehavior, Ricochet2DCollisionContext, Ricochet2DEvent, Ricochet2DFSM, Ricochet2DHandle, Ricochet2DOptions, Ricochet2DResult, Ricochet2DState, Ricochet3DBehavior, Ricochet3DCallback, Ricochet3DCollisionContext, Ricochet3DEvent, Ricochet3DFSM, Ricochet3DHandle, Ricochet3DOptions, Ricochet3DResult, Ricochet3DState, RicochetCallback, ScreenVisibilityBehavior, ScreenVisibilityChangeContext, ScreenVisibilityFSM, ScreenVisibilityHandle, ScreenVisibilityOptions, ScreenVisibilitySize, ScreenVisibilitySnapshot, ScreenWrapBehavior, ScreenWrapEvent, ScreenWrapFSM, ScreenWrapOptions, ScreenWrapState, SemanticParticlePresetOptions, Shooter2DAimFireInput, Shooter2DBehavior, Shooter2DBehaviorOptions, Shooter2DFireArgs, Shooter2DHandle, Shooter2DProjectileFactory, Shooter2DSourceEntity, Shooter2DStageLike, Shooter2DStateComponent, Shooter2DTarget, ThrusterBehavior, ThrusterBehaviorOptions, ThrusterEntity, ThrusterEvent, ThrusterFSM, ThrusterFSMContext, ThrusterInputComponent, ThrusterMovementComponent, ThrusterState, ThrusterStateComponent, TopDownMovementBehavior, TopDownMovementBehaviorOptions, TopDownMovementComponent, TopDownMovementEntity, TopDownMovementHandle, TopDownMovementInputComponent, TopDownMovementStateComponent, TopDownShooterCoordinator, TopDownShooterEntity, TopDownShooterInput, TransformComponent, Vec3Like, ViewmodelConfig, VoronoiOptions, WorldBoundary2DBehavior, WorldBoundary2DBounds, WorldBoundary2DEvent, WorldBoundary2DFSM, WorldBoundary2DHandle, WorldBoundary2DHit, WorldBoundary2DHits, WorldBoundary2DOptions, WorldBoundary2DPosition, WorldBoundary2DState, WorldBoundary3DBehavior, WorldBoundary3DBounds, WorldBoundary3DEvent, WorldBoundary3DFSM, WorldBoundary3DHandle, WorldBoundary3DHit, WorldBoundary3DHits, WorldBoundary3DOptions, WorldBoundary3DPosition, WorldBoundary3DState, computeWorldBoundary2DHits, computeWorldBoundary3DHits, createFirstPersonInputComponent, createFirstPersonMovementComponent, createFirstPersonStateComponent, createJumpConfig2D, createJumpConfig3D, createJumpInput2D, createJumpInput3D, createJumpState2D, createJumpState3D, createPhysicsBodyComponent, createPlatformer2DInputComponent, createPlatformer2DMovementComponent, createPlatformer2DStateComponent, createPlatformer3DInputComponent, createPlatformer3DMovementComponent, createPlatformer3DStateComponent, createShooter2DStateComponent, createThrusterInputComponent, createThrusterMovementComponent, createThrusterStateComponent, createTopDownMovementComponent, createTopDownMovementInputComponent, createTopDownMovementStateComponent, createTransformComponent, defineBehavior, fireCooldown, fireShooter2DIfRequested, getCooldown, getCooldownStore, getEntityFacingAngle2D, hasAnyWorldBoundary2DHit, hasAnyWorldBoundary3DHit, particleEffect, particlePresets, registerCooldown, resetCooldown, resolveAim2D, tickCooldowns, updateBoundaryRicochet, useBehavior } from '@zylem/behaviors';
17
18
  export { RUNTIME_BOUNDARY_2D_BEHAVIOR_KEY, RUNTIME_DYNAMIC_CIRCLE_BODY_2D_BEHAVIOR_KEY, RUNTIME_GOAL_ZONE_2D_BEHAVIOR_KEY, RUNTIME_PLAYER_INPUT_2D_BEHAVIOR_KEY, RUNTIME_RICOCHET_2D_BEHAVIOR_KEY, RUNTIME_TRIGGER_REGION_2D_BEHAVIOR_KEY, RuntimeBoundary2DBehavior, RuntimeBoundary2DOptions, RuntimeDynamicCircleBody2DBehavior, RuntimeDynamicCircleBody2DHandle, RuntimeDynamicCircleBody2DOptions, RuntimeGoalZone2DBehavior, RuntimeGoalZone2DEvent, RuntimeGoalZone2DHandle, RuntimeGoalZone2DOptions, RuntimePlayerInput2DBehavior, RuntimePlayerInput2DOptions, RuntimeRicochet2DBehavior, RuntimeRicochet2DEvent, RuntimeRicochet2DHandle, RuntimeRicochet2DOptions, RuntimeTriggerRegion2DBehavior, RuntimeTriggerRegion2DEvent, RuntimeTriggerRegion2DHandle, RuntimeTriggerRegion2DOptions, bindRuntimeDynamicCircleBody2DHandle, emitRuntimeGoal, emitRuntimeRicochet, emitRuntimeTriggerRegionEnter } from '@zylem/behaviors/runtime-2d';
@@ -27,16 +28,18 @@ export { Howl } from 'howler';
27
28
  export { o as AudioClip, A as AudioClipSchema, k as EffectType, E as Envelope, h as InstrumentDefinition, I as InstrumentDefinitionSchema, i as InstrumentEffect, a as InstrumentEffectSchema, j as InstrumentPreset, b as InstrumentPresetSchema, n as NoteClip, N as NoteClipSchema, O as OscillatorType, m as SongClip, d as SongClipSchema, g as SongDefinition, S as SongDefinitionSchema, r as SongLoop, f as SongLoopSchema, p as SongNote, e as SongNoteSchema, l as SongTrack, c as SongTrackSchema, q as TimeSignature, T as TimeSignatureSchema } from './song-definition-rEKksP0B.js';
28
29
  export { w as AudioItem, A as AudioItemSchema, q as AudioTrack, l as CameraKeyframe, c as CameraKeyframeSchema, m as CameraPoseDef, n as CameraShot, d as CameraShotSchema, o as CameraTrack, i as CutsceneCamera, j as CutsceneCameraKind, b as CutsceneCameraSchema, g as CutsceneDefinition, C as CutsceneDefinitionSchema, k as CutsceneEasing, u as CutsceneEvent, e as CutsceneEventSchema, h as CutsceneScene, a as CutsceneSceneSchema, r as CutsceneTrack, f as CutsceneTrackSchema, s as DollyPath, D as DollyPathSchema, v as EventItem, E as EventItemSchema, p as EventTrack, x as SceneTransition, S as SceneTransitionSchema, y as SceneTransitionType, t as ShotBlend, V as Vec3Def } from './cutscene-definition-C479fkei.js';
29
30
  export { CUTSCENE_BEHAVIOR_KEY, CutsceneCameraBehavior, CutsceneFrame, CutsceneHost, CutscenePlayer, CutscenePlayerEvents, CutscenePlayerOptions, CutscenePlayerState, CutscenePreviewController, CutsceneStageLike, EvaluatedPose, StageCutsceneHostOptions, TargetLookup, activeShot, cameraTracks, createCutscenePlayer, createStageCutsceneHost, cutsceneLength, dollyPointAt, easeValue, evaluateCameraPose, evaluateCutscene, itemsBetween, lerpPose, lerpVec3, previousShot, sampleDollyPath, sceneAt, setCutsceneTransitionShaders, shotAt } from './cinematics.js';
30
- export { D as DEFAULT_SNAP_SETTINGS, w as DebugEntityResolver, v as DebugTools, S as SnapSettings, T as TRANSFORM_TOOLS, x as TransformTool, d as debugState, k as getHoveredEntity, j as getHoveredEntityId, e as getSelectedEntity, g as getSelectedEntityId, h as getSelectedEntityIds, m as getSnapSettings, t as isPickMode, u as isTransformTool, r as registerDebugEntityResolver, l as resolveDebugEntity, p as setAddType, s as setDebugTool, o as setGridVisible, i as setHoveredEntityId, a as setPaused, q as setPickMode, b as setSelectedEntity, c as setSelectedEntityId, f as setSelectedEntityIds, n as setSnapSettings } from './debug-state-DhVkY2aM.js';
31
- export { ConstructionGrid, EntityFocusContext, EntityThumbnailCache, EntityThumbnailCacheEntry, EntityThumbnailResult, GizmoAxis, GizmoDelta, GizmoMode, GizmoRay, Quat, TransformGizmo, closestAxisValue, degreesToRadians, entityThumbnailCache, eulerToQuaternion, focusEntity, intersectPlane, quaternionToEuler, radiansToDegrees, registerEntityFocusContext, snapScale, snapToIncrement, snapVec3 } from './debug.js';
31
+ export { D as DEFAULT_SNAP_SETTINGS, w as DebugEntityResolver, v as DebugTools, S as SnapSettings, T as TRANSFORM_TOOLS, x as TransformTool, d as debugState, k as getHoveredEntity, j as getHoveredEntityId, e as getSelectedEntity, g as getSelectedEntityId, h as getSelectedEntityIds, m as getSnapSettings, t as isPickMode, u as isTransformTool, r as registerDebugEntityResolver, l as resolveDebugEntity, p as setAddType, s as setDebugTool, o as setGridVisible, i as setHoveredEntityId, a as setPaused, q as setPickMode, b as setSelectedEntity, c as setSelectedEntityId, f as setSelectedEntityIds, n as setSnapSettings } from './debug-state-BgX5Q0Ff.js';
32
+ export { G as GizmoAxis, a as GizmoDelta, b as GizmoMode, d as GizmoRay, T as TransformGizmo, c as closestAxisValue, i as intersectPlane } from './transform-gizmo-DappLQ9w.js';
33
+ export { ConstructionGrid, EntityFocusContext, EntityThumbnailCache, EntityThumbnailCacheEntry, EntityThumbnailResult, Quat, degreesToRadians, entityThumbnailCache, eulerToQuaternion, focusEntity, quaternionToEuler, radiansToDegrees, registerEntityFocusContext, snapScale, snapToIncrement, snapVec3 } from './debug.js';
32
34
  export { S as SELECTION_BOUNDS_MARGIN, a as SELECTION_THIN_AXIS_FRACTION, c as SELECTION_THIN_AXIS_MAX, b as SELECTION_THIN_AXIS_MIN, d as SelectionBoundsProvider, m as measureObjectSelectionBounds, p as padSelectionBounds, r as resolveSelectionBounds } from './selection-bounds-BKmSo9aG.js';
33
35
  export { GameBridge, GameBridgeHost, SwatchApplyOutcome } from './bridge.js';
34
36
  export { ZylemGameElement, ZylemGameState } from './web-components.js';
35
37
  export { a as SimulationBody, S as SimulationStepClock } from './simulation-body-zQw-emOr.js';
36
38
  export { RuntimeBodyOptions, RuntimeColliderOptions, RuntimeCollisionBundle, buildBoxCollider, buildCapsuleCollider, buildConvexHullCollider, buildCylinderCollider, buildHeightfieldCollider, buildRuntimeBody, buildSphereCollider, buildTrimeshCollider, bundleRuntimeCollision } from './runtime.js';
37
39
  export { ColorJsonSchema, GameConfigJson, GameConfigJsonSchema, GameDeviceConfigJson, GameDeviceConfigJsonSchema, GameInputConfigJson, GameInputConfigSchema, GameInputPlayerConfigSchema, KeyboardMappingSchema, MouseConfigSchema, MouseMappingSchema, ResolutionInputSchema, StageAssetLoaderConfigSchema, StageConfigJson, StageConfigJsonSchema, StageGLTFAssetLoaderConfigSchema, Vec3ComponentsSchema, VirtualTouchButtonConfigSchema, VirtualTouchButtonsConfigSchema, VirtualTouchConfigSchema, VirtualTouchJoystickConfigSchema, VirtualTouchJoysticksConfigSchema, VirtualTouchPositionSchema, VirtualTouchStyleSchema } from './schema.js';
40
+ export { DROPPABLE_AREA_TYPE, HOVER_AREA_TYPE, ZylemDroppableArea, ZylemHoverArea, createDroppableArea, createHoverArea } from './placement.js';
38
41
  export { createBackgroundShader, objectVertexShader, standardShader } from './graphics.js';
39
- export { d as ZylemShader, Z as ZylemShaderObject, b as ZylemTSLShader, c as createNodeMaterialFromTSL, a as isGLSLShader, i as isTSLShader } from './material-CxxAyJYp.js';
42
+ export { E as EntityGlowOptions, f as ZylemShader, Z as ZylemShaderObject, e as ZylemTSLShader, b as applyEntityGlow, d as createEntityGlowMaterial, c as createNodeMaterialFromTSL, a as isGLSLShader, i as isTSLShader } from './material-D1IVeQc5.js';
40
43
  export { Fn, abs, asin, atan, clamp, cos, dot, exp, float, floor, fract, length, max, min, mix, mod, normalize, positionWorld, positionWorldDirection, pow, sin, smoothstep, step, time, uniform, uv, vec2, vec3, vec4 } from 'three/tsl';
41
44
  export { p as packCollisionGroups } from './collision-builder-BckxkdmA.js';
42
45
  import './base-node-idopiSw5.js';
package/dist/public.js CHANGED
@@ -1 +1 @@
1
- import{A as Px,B as Vx,C as qx,a as sx,b as nx,c as lx,d as Sx,e as hx,f as yx,g as Lx,h as vx,i as Zx,j as bx,k as gx,l as ux,m as Tx,n as jx,o as Fx,p as Wx,q as kx,r as wx,s as zx,t as Bx,u as Dx,v as Ex,w as Gx,x as Mx,y as Nx,z as Ox}from"./chunk-KSEP7AUF.js";import"./chunk-ORIDWL3T.js";import{a as s,b as n,c as l,d as S,e as h,f as y,g as L,h as v,i as Z,j as b,k as g,l as u,m as T,n as j,o as F,p as W,q as k,r as w,s as z,t as B,u as D,v as E,w as G}from"./chunk-QB3NL7VQ.js";import"./chunk-BIGH6D34.js";import"./chunk-ELQN62PQ.js";import{a as Jf,b as Kf,c as Qf,d as Rf}from"./chunk-FZNEWOC5.js";import{a as Uf}from"./chunk-JCGW5PIR.js";import{a as Xf,b as Yf,c as _f,d as $f,e as ox,f as rx,g as ex,h as tx,i as mx,j as px,k as ax,l as fx,m as xx,n as ix,o as dx,p as cx}from"./chunk-47DG7I7M.js";import{a as Wo,b as ko,c as wo,d as zo,e as Po,f as Ap,g as Cp,h as oa,i as ra,j as ea,k as ta,l as ma,m as pa,n as aa,o as fa,p as xa,q as ia,r as da}from"./chunk-RPMV7GDX.js";import{a as Fo,c as Lm,d as vm,e as Zm,f as sp,g as np,h as vp,i as Tp,j as jp,l as Fp,m as Wp,n as kp,o as wp,p as zp,q as Bp,r as Dp,s as Ep,t as Gp,u as Mp,v as Np,w as Op,x as Vp,z as qp}from"./chunk-P6IOYQHU.js";import{a as Bo,b as Do,c as Eo,d as Go,e as Mo,f as No,g as Oo}from"./chunk-PCFF4LLO.js";import{a as so,b as no}from"./chunk-OCQ7A5IK.js";import{c as Zp,d as bp,e as gp,f as up}from"./chunk-47HAZZWF.js";import"./chunk-KIFB427K.js";import"./chunk-2HSR5XDQ.js";import{e as Ho,n as Yo}from"./chunk-VKWJHFUR.js";import{a as Ao,b as Co,c as Io,d as Jo,e as Ko,f as Qo,g as Ro,h as Uo,i as Xo}from"./chunk-273CUPEO.js";import{B as xo,C as io,D as co,a as C,b as H,c as I,d as J,e as K,f as Q,h as R,j as U,l as X,m as Y,n as _,o as $,p as oo,q as ro,u as eo,v as to,w as mo,x as po,y as ao,z as fo}from"./chunk-UM5VNQPY.js";import{b as xp}from"./chunk-WBQ5TNRZ.js";import{a as ca,b as sa,c as na,d as la,e as Sa}from"./chunk-Y23IJJPD.js";import{a as Hp,b as Ip,c as Jp,d as Kp,e as Qp,f as Rp,g as Up,h as Xp,i as Yp,j as _p,l as $p}from"./chunk-YRHRMVHS.js";import{a as pp,b as ap,c as fp,d as ip,e as dp,f as cp}from"./chunk-FUZDTRCU.js";import{A as te,B as me,C as pe,D as ae,E as fe,J as Le,K as ve,L as Ze,M as be,N as ge,O as ue,b as Br,c as Dr,d as Er,e as Gr,f as Mr,g as Nr,h as Or,i as Pr,j as Vr,k as qr,l as Ar,m as Cr,n as Hr,o as Ir,p as Jr,q as Kr,r as Qr,s as Rr,t as Ur,u as Xr,v as Yr,w as _r,x as $r,y as oe,z as ee}from"./chunk-5V52N34T.js";import{A as Se,B as he,C as ye,c as gr,d as ur,e as Tr,f as jr,g as Fr,h as Wr,i as kr,j as wr,u as zr,z as re}from"./chunk-VXE3CV3K.js";import{c as o,d as r,h as e,i as t,k as m,l as p,m as a,n as f,o as x,p as i,q as d,r as c}from"./chunk-6FGXC4T6.js";import{a as Vo,b as qo}from"./chunk-AIQ6IVT5.js";import"./chunk-QXVH6POE.js";import{a as xe,b as ie,c as de,d as ce,e as se,f as ne,g as le}from"./chunk-UUOPT2N4.js";import{b as br}from"./chunk-EVYHPR3J.js";import{a as ha,b as ya,c as La,d as va,e as Za,f as ba,g as ga,h as ua,i as Ta,j as ja,k as Fa,l as Wa,m as ka,n as wa,o as za,p as Ba}from"./chunk-6XFXPIVB.js";import{$ as gt,A as Ue,Aa as Ut,B as Xe,Ba as Xt,C as Ye,Ca as Yt,D as _e,Da as _t,E as $e,Ea as $t,F as ot,Fa as om,G as rt,Ga as rm,H as et,Ha as em,I as tt,Ia as tm,J as mt,Ja as mm,K as pt,Ka as pm,L as at,La as am,M as ft,Ma as fm,N as xt,Na as xm,O as it,Oa as im,P as dt,Pa as dm,Q as ct,Qa as cm,R as st,Ra as sm,S as nt,Sa as nm,T as lt,Ta as lm,U as St,Ua as Sm,V as ht,Va as hm,W as yt,X as Lt,Y as vt,Z as Zt,_ as bt,aa as ut,b as Te,ba as Tt,c as je,ca as jt,d as Fe,da as Ft,e as We,ea as Wt,f as ke,fa as kt,g as we,ga as wt,h as ze,ha as zt,i as Be,ia as Bt,j as De,ja as Dt,k as Ee,ka as Et,l as Ge,la as Gt,m as Me,ma as Mt,n as Ne,na as Nt,o as Oe,oa as Ot,p as Pe,pa as Pt,q as Ve,qa as Vt,r as qe,ra as qt,s as Ae,sa as At,t as Ce,ta as Ct,u as He,ua as Ht,v as Ie,va as It,w as Je,wa as Jt,x as Ke,xa as Kt,y as Qe,ya as Qt,z as Re,za as Rt}from"./chunk-VUJXR5K5.js";import{a as Da,b as Ea,c as Ja,d as Ka,e as Qa,f as Ra}from"./chunk-ZZO4CKRU.js";import{a as Ga,b as Ma,c as Na,d as Oa,e as Pa,f as Va,g as qa,h as Aa,i as Ca,j as Ha,k as Ia}from"./chunk-NVVLLWIM.js";import{a as Xm,c as Ym,d as _m,e as $m,f as op,g as rp}from"./chunk-2PFNNGTV.js";import"./chunk-VMXSE3EC.js";import{a as Ua,b as Xa,c as Ya,d as _a,e as $a,f as of,g as rf,h as ef,i as tf,j as mf,k as pf}from"./chunk-YNX3Q3CL.js";import{a as bm,b as gm,c as um,d as Tm,e as jm,f as Fm,g as Wm,h as km,i as wm,j as zm,k as Bm,l as Dm,m as Em,n as Gm,o as Mm,p as Nm,q as Om,r as ep,s as tp,t as mp}from"./chunk-2XMG3NJS.js";import{a as ym}from"./chunk-7GYFZKK7.js";import{a as Pm,b as Vm,c as qm,d as Am,e as Cm,f as Hm,g as Im,h as Jm,i as Km,j as Qm,k as Rm,l as Um}from"./chunk-QGIYILYI.js";import{a as af,b as ff,c as xf,d as df}from"./chunk-WQ3WMMZD.js";import{h as lp,i as Sp,j as hp,k as yp,l as Lp}from"./chunk-D2PATZCC.js";import{e as M,f as N,g as O,h as P,i as V,j as q,m as A}from"./chunk-4QLJUQSJ.js";import{a as _o,b as $o,c as or,d as rr,g as er,h as tr,i as mr,j as pr}from"./chunk-7WRQ2UAN.js";import{A as Of,B as Pf,C as Vf,D as qf,E as Af,a as cf,b as sf,c as nf,d as lf,e as Sf,f as hf,g as yf,h as Lf,i as vf,j as Zf,k as bf,l as gf,m as uf,n as Tf,o as jf,p as Ff,q as Wf,r as kf,s as wf,t as zf,u as Bf,v as Df,w as Ef,x as Gf,y as Mf,z as Nf}from"./chunk-IPWUDOV5.js";import{a as Pp}from"./chunk-BH53MBAZ.js";import{a as ar,b as fr,c as xr,d as ir,e as dr,f as cr,g as sr,h as nr,i as lr,j as Sr,k as hr,l as yr,m as Lr,n as vr,o as Zr}from"./chunk-XRP4JJXL.js";import{a as Cf,b as Hf,c as If}from"./chunk-7QF6YTEZ.js";import{a as lo,b as So,c as ho,d as yo,e as Lo,f as vo,g as Zo,h as bo,i as go,j as uo,k as To,l as jo}from"./chunk-UG22Z42P.js";import"./chunk-WOT6VMZA.js";export{pp as ACTOR_TYPE,Wo as AspectRatio,qa as AudioClipSchema,tf as AudioItemSchema,Or as BOX_TYPE,Rf as BRIDGE_READY_EVENT,Te as BoundaryRicochet3DCoordinator,je as BoundaryRicochetCoordinator,Hr as CONE_TYPE,bm as CUTSCENE_BEHAVIOR_KEY,Ur as CYLINDER_TYPE,Ya as CameraKeyframeSchema,Gp as CameraManager,Fp as CameraPipeline,of as CameraShotSchema,Mp as CameraWrapper,Ex as ColorJsonSchema,Zp as ConstructionGrid,Fe as CooldownBehavior,gm as CutsceneCameraBehavior,_a as CutsceneCameraSchema,pf as CutsceneDefinitionSchema,rf as CutsceneEventSchema,mp as CutscenePreviewController,Xa as CutsceneSceneSchema,mf as CutsceneTrackSchema,I as DEFAULT_SNAP_SETTINGS,ee as DISK_TYPE,We as Destructible3DBehavior,ke as DestructibleMesh,$a as DollyPathSchema,vx as EntityJsonSchema,nx as EntitySchema,so as EntityThumbnailCache,Vo as EventEmitterDelegate,ef as EventItemSchema,ip as FOG_TYPE,we as FirstPersonBehavior,ze as FirstPersonEvent,Be as FirstPersonFSM,wp as FirstPersonPerspective,Ge as FirstPersonPresentation,De as FirstPersonShooterCoordinator,Ee as FirstPersonState,kp as Fixed2DPerspective,c as Fn,Me as FractureOptions,oa as Game,Yo as GameBridge,qx as GameConfigJsonSchema,Vx as GameDeviceConfigJsonSchema,Dx as GameInputConfigSchema,Bx as GameInputPlayerConfigSchema,Ra as Howl,Na as InstrumentDefinitionSchema,Ma as InstrumentEffectSchema,Ga as InstrumentPresetSchema,zp as IsometricPerspective,Ne as Jumper2DBehavior,Oe as Jumper2DEvent,Pe as Jumper2DFSM,Ve as Jumper2DState,qe as Jumper3DBehavior,Ae as Jumper3DEvent,Ce as Jumper3DFSM,He as Jumper3DState,bx as KeyboardMappingSchema,be as LIGHT_TYPE,Up as LINE_TYPE,yx as LineEntityDataSchema,zx as MouseConfigSchema,gx as MouseMappingSchema,Ie as MultidirectionalSpaceShooterCoordinator,Va as NoteClipSchema,ca as PARTICLE_SYSTEM_TYPE,_r as PILL_TYPE,pe as PLANE_TYPE,Kr as PYRAMID_TYPE,Je as ParticleEmitterBehavior,jp as Perspectives,Ke as Platformer2DBehavior,Qe as Platformer2DEvent,Re as Platformer2DFSM,Ue as Platformer2DState,Xe as Platformer3DBehavior,Ye as Platformer3DEvent,_e as Platformer3DFSM,$e as Platformer3DState,Le as RECT_TYPE,ga as RUNTIME_BOUNDARY_2D_BEHAVIOR_KEY,ua as RUNTIME_DYNAMIC_CIRCLE_BODY_2D_BEHAVIOR_KEY,Ta as RUNTIME_GOAL_ZONE_2D_BEHAVIOR_KEY,ja as RUNTIME_PLAYER_INPUT_2D_BEHAVIOR_KEY,Fa as RUNTIME_RICOCHET_2D_BEHAVIOR_KEY,Wa as RUNTIME_TRIGGER_REGION_2D_BEHAVIOR_KEY,sp as RenderBundleManager,np as RenderStrategyManager,Px as ResolutionInputSchema,ot as Ricochet2DBehavior,rt as Ricochet2DEvent,et as Ricochet2DFSM,tt as Ricochet2DState,mt as Ricochet3DBehavior,pt as Ricochet3DEvent,at as Ricochet3DFSM,ft as Ricochet3DState,ha as RuntimeBoundary2DBehavior,ya as RuntimeDynamicCircleBody2DBehavior,La as RuntimeGoalZone2DBehavior,va as RuntimePlayerInput2DBehavior,Za as RuntimeRicochet2DBehavior,ba as RuntimeTriggerRegion2DBehavior,xe as SELECTION_BOUNDS_MARGIN,ie as SELECTION_THIN_AXIS_FRACTION,ce as SELECTION_THIN_AXIS_MAX,de as SELECTION_THIN_AXIS_MIN,qr as SPHERE_TYPE,Kp as SPRITE_TYPE,ma as STAGE_STATE_CHANGE,Ua as SceneTransitionSchema,xt as ScreenVisibilityBehavior,it as ScreenVisibilityFSM,dt as ScreenWrapBehavior,ct as ScreenWrapEvent,st as ScreenWrapFSM,nt as ScreenWrapState,Dp as SecondPersonPerspective,lt as Shooter2DBehavior,xp as SimulationBody,Aa as SongClipSchema,Ia as SongDefinitionSchema,Ha as SongLoopSchema,Oa as SongNoteSchema,Pa as SongTrackSchema,Lx as SpriteEntityDataSchema,Nx as StageAssetLoaderConfigSchema,px as StageBodyKind,ax as StageBoundaryDim,Ox as StageConfigJsonSchema,fx as StageEventType,Mx as StageGLTFAssetLoaderConfigSchema,Zx as StageJsonSchema,Cp as StageManager,xx as StageRicochetDim,ix as StageRicochetReflection,lx as StageSchema,dx as StageTopDownPlane,Hp as TEXT_TYPE,C as TRANSFORM_TOOLS,Sx as TextEntityDataSchema,Wp as ThirdPersonPerspective,St as ThrusterBehavior,ht as ThrusterEvent,yt as ThrusterFSM,Lt as ThrusterState,Ca as TimeSignatureSchema,vt as TopDownMovementBehavior,Bp as TopDownPerspective,Zt as TopDownShooterCoordinator,up as TransformGizmo,$o as VEC2_ONE,_o as VEC2_ZERO,rr as VEC3_ONE,or as VEC3_ZERO,Gx as Vec3ComponentsSchema,sx as Vector2Schema,hx as Vector3TupleSchema,jx as VirtualTouchButtonConfigSchema,Wx as VirtualTouchButtonsConfigSchema,wx as VirtualTouchConfigSchema,Fx as VirtualTouchJoystickConfigSchema,kx as VirtualTouchJoysticksConfigSchema,Tx as VirtualTouchPositionSchema,ux as VirtualTouchStyleSchema,bt as WorldBoundary2DBehavior,gt as WorldBoundary2DEvent,ut as WorldBoundary2DFSM,Tt as WorldBoundary2DState,jt as WorldBoundary3DBehavior,Ft as WorldBoundary3DEvent,Wt as WorldBoundary3DFSM,kt as WorldBoundary3DState,Se as ZONE_TYPE,ap as ZylemActor,Pr as ZylemBox,Ir as ZylemCone,Xr as ZylemCylinder,te as ZylemDisk,dp as ZylemFog,Uf as ZylemGameElement,ge as ZylemLight,Yp as ZylemLine,sa as ZylemParticleSystem,$r as ZylemPill,ae as ZylemPlane,Qr as ZylemPyramid,ve as ZylemRect,Ar as ZylemSphere,Qp as ZylemSprite,Ip as ZylemText,he as ZylemZone,u as abs,km as activeShot,Kf as announceBridgeReady,Qf as applySwatchesToSelection,Pp as applyTransformChanges,g as asin,b as atan,Qm as audibleTrackIds,Pm as beatsPerBar,qm as beatsToSeconds,ka as bindRuntimeDynamicCircleBody2DHandle,gr as boxCollision,Br as boxMesh,Yf as buildBoxCollider,$f as buildCapsuleCollider,rx as buildConvexHullCollider,ox as buildCylinderCollider,tx as buildHeightfieldCollider,Xf as buildRuntimeBody,_f as buildSphereCollider,ex as buildTrimeshCollider,mx as bundleRuntimeCollision,hf as callFunc,Mm as cameraTracks,L as clamp,A as clearGlobalSubscriptions,Um as clipsAt,bp as closestAxisValue,wt as computeWorldBoundary2DHits,zt as computeWorldBoundary3DHits,Tr as coneCollision,Er as coneMesh,Z as cos,zr as create,fp as createActor,s as createBackgroundShader,Vr as createBox,Np as createCamera,Jr as createCone,la as createCooldownIcon,Om as createCutscenePlayer,Yr as createCylinder,me as createDisk,re as createEntity,$p as createEntityFactory,Bt as createFirstPersonInputComponent,Dt as createFirstPersonMovementComponent,Et as createFirstPersonStateComponent,cp as createFog,fa as createFollowTarget,ra as createGame,N as createGlobal,Xm as createInstrument,Gt as createJumpConfig2D,Mt as createJumpConfig3D,Nt as createJumpInput2D,Ot as createJumpInput3D,Pt as createJumpState2D,Vt as createJumpState3D,ue as createLight,_p as createLine,m as createNodeMaterialFromTSL,na as createParticleSystem,Ep as createPerspective,qt as createPhysicsBodyComponent,oe as createPill,fe as createPlane,xa as createPlatformFollow,At as createPlatformer2DInputComponent,Ct as createPlatformer2DMovementComponent,Ht as createPlatformer2DStateComponent,It as createPlatformer3DInputComponent,Jt as createPlatformer3DMovementComponent,Kt as createPlatformer3DStateComponent,Rr as createPyramid,Ze as createRect,Qt as createShooter2DStateComponent,cx as createSimulation,op as createSongPlayer,Cr as createSphere,Rp as createSprite,qp as createStage,tp as createStageCutsceneHost,ia as createStrategyPan,Jp as createText,Rt as createThrusterInputComponent,Ut as createThrusterMovementComponent,Xt as createThrusterStateComponent,Yt as createTopDownMovementComponent,_t as createTopDownMovementInputComponent,$t as createTopDownMovementStateComponent,om as createTransformComponent,jf as createTransformStore,Sp as createVariable,ye as createZone,ym as crossfadeTransitionShader,Nm as cutsceneLength,Fr as cylinderCollision,Mr as cylinderMesh,Jm as dbToGain,J as debugState,Oo as defaultTouchControls,rm as defineBehavior,Uo as degreesToRadians,Sf as delay,Sa as destroy,aa as dispatchStageState,zm as dollyPointAt,B as dot,um as easeValue,wa as emitRuntimeGoal,za as emitRuntimeRicochet,Ba as emitRuntimeTriggerRegionEnter,Ka as encodeWav,Qa as encodeWavBlob,_m as ensureAudio,ta as entitySpawner,no as entityThumbnailCache,Io as eulerToQuaternion,Dm as evaluateCameraPose,Em as evaluateCutscene,T as exp,yf as fadeOpacity,em as fireCooldown,tm as fireShooter2DIfRequested,d as float,w as floor,Co as focusEntity,z as fract,Km as gainToDb,Po as gameConfig,vp as getActiveLevelDocument,rp as getActiveSongPlayer,mm as getCooldown,pm as getCooldownStore,ko as getDisplayAspect,am as getEntityFacingAngle2D,O as getGlobal,q as getGlobals,io as getHoveredEntity,ao as getHoveredEntityId,Gf as getPosition,wo as getPresetResolution,Zr as getRotation,xo as getSelectedEntity,_ as getSelectedEntityId,oo as getSelectedEntityIds,eo as getSnapSettings,hp as getVariable,Mf as getVelocity,Jf as getZylemBridge,af as globalChange,ff as globalChanges,fm as hasAnyWorldBoundary2DHit,xm as hasAnyWorldBoundary3DHit,pa as initStageStateDispatcher,gp as intersectPlane,$m as isAudioReady,t as isGLSLShader,Zm as isManagedRenderEntity,Y as isPickMode,e as isTSLShader,H as isTransformTool,Fo as isWebGPUSupported,Gm as itemsBetween,Go as joystickBaseSvg,Mo as joystickThumbSvg,D as length,jm as lerpPose,Tm as lerpVec3,Ym as loadTone,W as max,ne as measureObjectSelectionBounds,jo as mergeInputConfigs,Hm as midiToFrequency,Im as midiToNoteName,k as min,h as mix,G as mod,Ff as move,sf as moveBy,Ef as moveForwardXY,nf as moveTo,Wf as moveX,zf as moveXY,Bf as moveXZ,kf as moveY,wf as moveZ,S as normalize,er as normalizeVec2,tr as normalizeVec3,o as objectVertexShader,P as onGlobalChange,V as onGlobalChanges,vf as onPress,Zf as onRelease,yp as onVariableChange,Lp as onVariableChanges,br as packCollisionGroups,se as padSelectionBounds,gf as parallel,zo as parseResolution,im as particleEffect,dm as particlePresets,Xp as pickZylemLine,Wr as pillCollision,Nr as pillMesh,Ea as pingPongBeep,kr as planeCollision,l as positionWorld,n as positionWorldDirection,j as pow,wm as previousShot,jr as pyramidCollision,Gr as pyramidMesh,Jo as quaternionToEuler,Xo as radiansToDegrees,cm as registerCooldown,K as registerDebugEntityResolver,Ao as registerEntityFocusContext,Ja as renderSong,uf as repeat,Tf as repeatForever,sm as resetCooldown,cf as resetEntityOpacity,Df as resetVelocity,nm as resolveAim2D,Eo as resolveButtonAccent,Q as resolveDebugEntity,Lm as resolveRenderCategory,le as resolveSelectionBounds,Do as resolveTouchTheme,Da as ricochetSound,lf as rotateBy,xr as rotateEuler,ar as rotateInDirection,dr as rotateX,ir as rotateY,fr as rotateYEuler,cr as rotateZ,Bm as sampleDollyPath,Fm as sceneAt,Rm as scheduleSong,If as screenCenterLookDeltas,Hf as screenCenterLookTargets,Am as secondsToBeats,bf as sequence,po as setAddType,da as setCameraFeed,ep as setCutsceneTransitionShaders,U as setDebugTool,M as setGlobal,mo as setGridVisible,fo as setHoveredEntityId,R as setPaused,X as setPickMode,Nf as setPosition,Of as setPositionX,Pf as setPositionY,Vf as setPositionZ,Lr as setRotation,vr as setRotationDegrees,Sr as setRotationDegreesX,nr as setRotationDegreesY,yr as setRotationDegreesZ,lr as setRotationX,sr as setRotationY,hr as setRotationZ,co as setSelectedEntity,$ as setSelectedEntityId,ro as setSelectedEntityIds,to as setSnapSettings,Tp as setStageFrameProfilerEnabled,lp as setVariable,Cf as shortestAngleDelta,Wm as shotAt,v as sin,y as smoothstep,Ro as snapScale,Ko as snapToIncrement,Qo as snapVec3,Vm as songLengthBeats,Cm as songLengthSeconds,ur as sphereCollision,Dr as sphereMesh,Op as stageConfig,Ap as stageState,r as standardShader,F as step,Ho as streamLevel,ea as streamLevelOnStage,Lf as throttle,lm as tickCooldowns,f as time,mr as toThreeVector2,pr as toThreeVector3,No as touchButtonSvg,Bo as touchThemes,p as uniform,Sm as updateBoundaryRicochet,lo as useArrowsForAxes,ho as useArrowsForDirections,So as useArrowsForSecondaryAxes,hm as useBehavior,vo as useIJKLForAxes,Zo as useIJKLForDirections,uo as useMouse,bo as useMouseLook,go as useScreenCenterLook,To as useVirtualControls,Lo as useWASDForAxes,yo as useWASDForDirections,vm as usesManagedRenderPath,a as uv,xf as variableChange,df as variableChanges,E as vec2,x as vec3,i as vec4,Vp as vessel,Af as wrapAround3D,qf as wrapAroundXY,wr as zoneCollision,qo as zylemEventBus};
1
+ import{a as $m,b as en,c as rn,d as tn}from"./chunk-FZNEWOC5.js";import{a as on}from"./chunk-JCGW5PIR.js";import{a as an,b as pn,c as mn,d as nn,e as fn,f as xn,g as ln,h as sn,i as cn,j as dn,k as yn,l as vn,m as En,n as Sn,o as An,p as hn}from"./chunk-47DG7I7M.js";import{A as In,B as Jn,C as Kn,a as Rn,b as Pn,c as Ln,d as On,e as bn,f as Tn,g as Zn,h as Dn,i as gn,j as un,k as wn,l as Gn,m as Hn,n as _n,o as Fn,p as jn,q as kn,r as Bn,s as Cn,t as Mn,u as Vn,v as Wn,w as Yn,x as zn,y as Nn,z as qn}from"./chunk-KSEP7AUF.js";import{A as Nm,B as qm,C as Im,D as Jm,E as Km,a as Am,b as hm,c as Rm,d as Pm,e as Lm,f as Om,g as bm,h as Tm,i as Zm,j as Dm,k as gm,l as um,m as wm,n as Gm,o as Hm,p as _m,q as Fm,r as jm,s as km,t as Bm,u as Cm,v as Mm,w as Vm,x as Wm,y as Ym,z as zm}from"./chunk-IPWUDOV5.js";import{a as Qm,b as Um,c as Xm}from"./chunk-7QF6YTEZ.js";import"./chunk-ORIDWL3T.js";import{a as y,b as v,c as E,d as S,e as A,f as h}from"./chunk-MJ7RGE47.js";import{a as R,b as P,c as L,d as O,e as b,f as T,g as Z,h as D,i as g,j as u,k as w,l as G,m as H,n as _,o as F,p as j,q as k,r as B,s as C,t as M,u as V,v as W,w as Y}from"./chunk-4DAITCJS.js";import"./chunk-BIGH6D34.js";import"./chunk-ELQN62PQ.js";import{a as Vi,b as Wi,c as em,d as rm,e as tm,f as om}from"./chunk-ZZO4CKRU.js";import{a as Yi,b as zi,c as Ni,d as qi,e as Ii,f as Ji,g as Ki,h as Qi,i as Ui,j as Xi,k as $i}from"./chunk-NVVLLWIM.js";import{a as pp,c as ip,d as mp,e as np,f as fp,g as xp}from"./chunk-2PFNNGTV.js";import"./chunk-VMXSE3EC.js";import{a as am,b as pm,c as im,d as mm,e as nm,f as fm,g as xm,h as lm,i as sm,j as cm,k as dm}from"./chunk-YNX3Q3CL.js";import{a as ym,b as vm,c as Em,d as Sm}from"./chunk-WQ3WMMZD.js";import{a as Fe,b as je,c as ke,d as Be,e as qe,f as Qp,g as Up,h as fi,i as xi,j as li,k as si,l as ci,m as di,n as yi,o as vi,p as Ei,q as Si,r as Ai}from"./chunk-JJEYLGD2.js";import{a as _e,c as Za,d as Da,e as ga,f as Rp,g as Pp,h as Dp,i as Hp,j as _p,l as Fp,m as jp,n as kp,o as Bp,p as Cp,q as Mp,r as Vp,s as Wp,t as Yp,u as zp,v as Np,w as qp,x as Jp,z as Kp}from"./chunk-UKNMIHAP.js";import{e as Ue,n as pr}from"./chunk-KL7NGD76.js";import{b as Ep}from"./chunk-WBQ5TNRZ.js";import{a as Ip}from"./chunk-BH53MBAZ.js";import{a as Ce,b as Me,c as Ve,d as We,e as Ye,f as ze,g as Ne}from"./chunk-PCFF4LLO.js";import{a as Pe,b as Le,c as Oe,d as be,e as Te,f as Ze,g as De,h as ge,i as ue,j as we,k as Ge,l as He}from"./chunk-UG22Z42P.js";import{c as d}from"./chunk-Y5IU6IA5.js";import{a as he,b as Re}from"./chunk-OCQ7A5IK.js";import{c as gp,d as up,e as wp,f as Gp}from"./chunk-47HAZZWF.js";import{a as Ke,b as Qe,c as Xe,d as $e,e as er,f as rr,g as tr,h as or,i as ar}from"./chunk-273CUPEO.js";import{B as Ee,C as Se,D as Ae,a as U,b as X,c as $,d as ee,e as re,f as te,h as oe,j as ae,l as pe,m as ie,n as me,o as ne,p as fe,q as xe,u as le,v as se,w as ce,x as de,y as ye,z as ve}from"./chunk-UM5VNQPY.js";import"./chunk-SD7EHS4W.js";import"./chunk-2HSR5XDQ.js";import{a as ua,b as wa,c as Ga,d as Ha,e as _a,f as Fa,g as ja,h as ka,i as Ba,j as Ca,k as Ma,l as Va,m as Wa,n as Ya,o as za,p as Na,q as qa,r as lp,s as sp,t as cp}from"./chunk-2XMG3NJS.js";import{a as Ta}from"./chunk-7GYFZKK7.js";import{a as Ia,b as Ja,c as Ka,d as Qa,e as Ua,f as Xa,g as $a,h as ep,i as rp,j as tp,k as op,l as ap}from"./chunk-QGIYILYI.js";import{h as Lp,i as Op,j as bp,k as Tp,l as Zp}from"./chunk-D2PATZCC.js";import{a as hi,b as Ri,c as Pi,d as Li,e as Oi}from"./chunk-CVKEWWIH.js";import{a as Xp,b as $p,c as ei,d as ri,e as ti,f as oi,g as ai,h as pi,i as ii,j as mi,l as ni}from"./chunk-63T3K5EQ.js";import{a as dp,b as yp,c as vp,d as Sp,e as Ap,f as hp}from"./chunk-M2FZ224T.js";import{A as lt,B as st,C as ct,D as dt,E as yt,J as Tt,K as Zt,L as Dt,M as gt,N as ut,O as wt,b as Cr,c as Mr,d as Vr,e as Wr,f as Yr,g as zr,h as Nr,i as qr,j as Ir,k as Jr,l as Kr,m as Qr,n as Ur,o as Xr,p as $r,q as et,r as rt,s as tt,t as ot,u as at,v as pt,w as it,x as mt,y as nt,z as xt}from"./chunk-DYD7MDWO.js";import{d as ft,e as Lt,f as Ot,g as bt}from"./chunk-IHGRFR4H.js";import{E as Br,c as ur,d as wr,e as Gr,f as Hr,g as _r,h as Fr,i as jr,j as kr}from"./chunk-AJSIVGDX.js";import{b as gr}from"./chunk-EVYHPR3J.js";import{a as dr,b as yr,c as vr,d as Er,e as Sr,f as Ar,g as hr,h as Rr,i as Pr,j as Lr,k as Or,l as br,m as Tr,n as Zr,o as Dr}from"./chunk-XRP4JJXL.js";import{c as e,d as r,h as t,i as o,j as a,k as p,m as i,n as m,o as n,p as f,q as x,r as l,s,t as c}from"./chunk-Q22Z4PBD.js";import{a as Ie,b as Je}from"./chunk-AIQ6IVT5.js";import"./chunk-QXVH6POE.js";import{a as vt,b as Et,c as St,d as At,e as ht,f as Rt,g as Pt}from"./chunk-UUOPT2N4.js";import{e as z,f as N,g as q,h as I,i as J,j as K,m as Q}from"./chunk-4QLJUQSJ.js";import{a as ir,b as mr,c as nr,d as fr,g as xr,h as lr,i as sr,j as cr}from"./chunk-7WRQ2UAN.js";import{a as bi,b as Ti,c as Zi,d as Di,e as gi,f as ui,g as wi,h as Gi,i as Hi,j as _i,k as Fi,l as ji,m as ki,n as Bi,o as Ci,p as Mi}from"./chunk-6XFXPIVB.js";import{$ as wo,A as oo,Aa as aa,B as ao,Ba as pa,C as po,Ca as ia,D as io,Da as ma,E as mo,Ea as na,F as no,Fa as fa,G as fo,Ga as xa,H as xo,Ha as la,I as lo,Ia as sa,J as so,Ja as ca,K as co,Ka as da,L as yo,La as ya,M as vo,Ma as va,N as Eo,Na as Ea,O as So,Oa as Sa,P as Ao,Pa as Aa,Q as ho,Qa as ha,R as Ro,Ra,S as Po,Sa as Pa,T as Lo,Ta as La,U as Oo,Ua as Oa,V as bo,Va as ba,W as To,X as Zo,Y as Do,Z as go,_ as uo,aa as Go,b as Gt,ba as Ho,c as Ht,ca as _o,d as _t,da as Fo,e as Ft,ea as jo,f as jt,fa as ko,g as kt,ga as Bo,h as Bt,ha as Co,i as Ct,ia as Mo,j as Mt,ja as Vo,k as Vt,ka as Wo,l as Wt,la as Yo,m as Yt,ma as zo,n as zt,na as No,o as Nt,oa as qo,p as qt,pa as Io,q as It,qa as Jo,r as Jt,ra as Ko,s as Kt,sa as Qo,t as Qt,ta as Uo,u as Ut,ua as Xo,v as Xt,va as $o,w as $t,wa as ea,x as eo,xa as ra,y as ro,ya as ta,z as to,za as oa}from"./chunk-VUJXR5K5.js";import"./chunk-WOT6VMZA.js";export{dp as ACTOR_TYPE,Fe as AspectRatio,Ki as AudioClipSchema,sm as AudioItemSchema,Nr as BOX_TYPE,tn as BRIDGE_READY_EVENT,Gt as BoundaryRicochet3DCoordinator,Ht as BoundaryRicochetCoordinator,Ur as CONE_TYPE,ua as CUTSCENE_BEHAVIOR_KEY,ot as CYLINDER_TYPE,im as CameraKeyframeSchema,Yp as CameraManager,Fp as CameraPipeline,fm as CameraShotSchema,zp as CameraWrapper,Wn as ColorJsonSchema,gp as ConstructionGrid,_t as CooldownBehavior,wa as CutsceneCameraBehavior,mm as CutsceneCameraSchema,dm as CutsceneDefinitionSchema,xm as CutsceneEventSchema,cp as CutscenePreviewController,pm as CutsceneSceneSchema,cm as CutsceneTrackSchema,$ as DEFAULT_SNAP_SETTINGS,xt as DISK_TYPE,v as DROPPABLE_AREA_TYPE,Ft as Destructible3DBehavior,jt as DestructibleMesh,nm as DollyPathSchema,Dn as EntityJsonSchema,Pn as EntitySchema,he as EntityThumbnailCache,Ie as EventEmitterDelegate,lm as EventItemSchema,Sp as FOG_TYPE,kt as FirstPersonBehavior,Bt as FirstPersonEvent,Ct as FirstPersonFSM,Bp as FirstPersonPerspective,Wt as FirstPersonPresentation,Mt as FirstPersonShooterCoordinator,Vt as FirstPersonState,kp as Fixed2DPerspective,c as Fn,Yt as FractureOptions,fi as Game,pr as GameBridge,Kn as GameConfigJsonSchema,Jn as GameDeviceConfigJsonSchema,Vn as GameInputConfigSchema,Mn as GameInputPlayerConfigSchema,y as HOVER_AREA_TYPE,om as Howl,Ni as InstrumentDefinitionSchema,zi as InstrumentEffectSchema,Yi as InstrumentPresetSchema,Cp as IsometricPerspective,zt as Jumper2DBehavior,Nt as Jumper2DEvent,qt as Jumper2DFSM,It as Jumper2DState,Jt as Jumper3DBehavior,Kt as Jumper3DEvent,Qt as Jumper3DFSM,Ut as Jumper3DState,un as KeyboardMappingSchema,gt as LIGHT_TYPE,ai as LINE_TYPE,Tn as LineEntityDataSchema,Cn as MouseConfigSchema,wn as MouseMappingSchema,Xt as MultidirectionalSpaceShooterCoordinator,Ji as NoteClipSchema,hi as PARTICLE_SYSTEM_TYPE,it as PILL_TYPE,ct as PLANE_TYPE,et as PYRAMID_TYPE,$t as ParticleEmitterBehavior,_p as Perspectives,eo as Platformer2DBehavior,ro as Platformer2DEvent,to as Platformer2DFSM,oo as Platformer2DState,ao as Platformer3DBehavior,po as Platformer3DEvent,io as Platformer3DFSM,mo as Platformer3DState,Tt as RECT_TYPE,wi as RUNTIME_BOUNDARY_2D_BEHAVIOR_KEY,Gi as RUNTIME_DYNAMIC_CIRCLE_BODY_2D_BEHAVIOR_KEY,Hi as RUNTIME_GOAL_ZONE_2D_BEHAVIOR_KEY,_i as RUNTIME_PLAYER_INPUT_2D_BEHAVIOR_KEY,Fi as RUNTIME_RICOCHET_2D_BEHAVIOR_KEY,ji as RUNTIME_TRIGGER_REGION_2D_BEHAVIOR_KEY,Rp as RenderBundleManager,Pp as RenderStrategyManager,In as ResolutionInputSchema,no as Ricochet2DBehavior,fo as Ricochet2DEvent,xo as Ricochet2DFSM,lo as Ricochet2DState,so as Ricochet3DBehavior,co as Ricochet3DEvent,yo as Ricochet3DFSM,vo as Ricochet3DState,bi as RuntimeBoundary2DBehavior,Ti as RuntimeDynamicCircleBody2DBehavior,Zi as RuntimeGoalZone2DBehavior,Di as RuntimePlayerInput2DBehavior,gi as RuntimeRicochet2DBehavior,ui as RuntimeTriggerRegion2DBehavior,vt as SELECTION_BOUNDS_MARGIN,Et as SELECTION_THIN_AXIS_FRACTION,At as SELECTION_THIN_AXIS_MAX,St as SELECTION_THIN_AXIS_MIN,Jr as SPHERE_TYPE,ri as SPRITE_TYPE,ci as STAGE_STATE_CHANGE,am as SceneTransitionSchema,Eo as ScreenVisibilityBehavior,So as ScreenVisibilityFSM,Ao as ScreenWrapBehavior,ho as ScreenWrapEvent,Ro as ScreenWrapFSM,Po as ScreenWrapState,Vp as SecondPersonPerspective,Lo as Shooter2DBehavior,Ep as SimulationBody,Qi as SongClipSchema,$i as SongDefinitionSchema,Xi as SongLoopSchema,qi as SongNoteSchema,Ii as SongTrackSchema,Zn as SpriteEntityDataSchema,Nn as StageAssetLoaderConfigSchema,dn as StageBodyKind,yn as StageBoundaryDim,qn as StageConfigJsonSchema,vn as StageEventType,zn as StageGLTFAssetLoaderConfigSchema,gn as StageJsonSchema,Up as StageManager,En as StageRicochetDim,Sn as StageRicochetReflection,Ln as StageSchema,An as StageTopDownPlane,Xp as TEXT_TYPE,U as TRANSFORM_TOOLS,On as TextEntityDataSchema,jp as ThirdPersonPerspective,Oo as ThrusterBehavior,bo as ThrusterEvent,To as ThrusterFSM,Zo as ThrusterState,Ui as TimeSignatureSchema,Do as TopDownMovementBehavior,Mp as TopDownPerspective,go as TopDownShooterCoordinator,Gp as TransformGizmo,mr as VEC2_ONE,ir as VEC2_ZERO,fr as VEC3_ONE,nr as VEC3_ZERO,Yn as Vec3ComponentsSchema,Rn as Vector2Schema,bn as Vector3TupleSchema,_n as VirtualTouchButtonConfigSchema,jn as VirtualTouchButtonsConfigSchema,Bn as VirtualTouchConfigSchema,Fn as VirtualTouchJoystickConfigSchema,kn as VirtualTouchJoysticksConfigSchema,Hn as VirtualTouchPositionSchema,Gn as VirtualTouchStyleSchema,uo as WorldBoundary2DBehavior,wo as WorldBoundary2DEvent,Go as WorldBoundary2DFSM,Ho as WorldBoundary2DState,_o as WorldBoundary3DBehavior,Fo as WorldBoundary3DEvent,jo as WorldBoundary3DFSM,ko as WorldBoundary3DState,Lt as ZONE_TYPE,yp as ZylemActor,qr as ZylemBox,Xr as ZylemCone,at as ZylemCylinder,lt as ZylemDisk,S as ZylemDroppableArea,Ap as ZylemFog,on as ZylemGameElement,E as ZylemHoverArea,ut as ZylemLight,ii as ZylemLine,Ri as ZylemParticleSystem,mt as ZylemPill,dt as ZylemPlane,rt as ZylemPyramid,Zt as ZylemRect,Kr as ZylemSphere,ti as ZylemSprite,$p as ZylemText,Ot as ZylemZone,G as abs,ka as activeShot,en as announceBridgeReady,o as applyEntityGlow,rn as applySwatchesToSelection,Ip as applyTransformChanges,w as asin,u as atan,tp as audibleTrackIds,Ia as beatsPerBar,Ka as beatsToSeconds,ki as bindRuntimeDynamicCircleBody2DHandle,ur as boxCollision,Cr as boxMesh,pn as buildBoxCollider,nn as buildCapsuleCollider,xn as buildConvexHullCollider,fn as buildCylinderCollider,sn as buildHeightfieldCollider,an as buildRuntimeBody,mn as buildSphereCollider,ln as buildTrimeshCollider,cn as bundleRuntimeCollision,Om as callFunc,za as cameraTracks,Z as clamp,Q as clearGlobalSubscriptions,ap as clipsAt,up as closestAxisValue,Bo as computeWorldBoundary2DHits,Co as computeWorldBoundary3DHits,Gr as coneCollision,Vr as coneMesh,g as cos,Br as create,vp as createActor,R as createBackgroundShader,Ir as createBox,Np as createCamera,$r as createCone,Li as createCooldownIcon,qa as createCutscenePlayer,pt as createCylinder,st as createDisk,h as createDroppableArea,ft as createEntity,ni as createEntityFactory,t as createEntityGlowMaterial,Mo as createFirstPersonInputComponent,Vo as createFirstPersonMovementComponent,Wo as createFirstPersonStateComponent,hp as createFog,vi as createFollowTarget,xi as createGame,N as createGlobal,A as createHoverArea,pp as createInstrument,Yo as createJumpConfig2D,zo as createJumpConfig3D,No as createJumpInput2D,qo as createJumpInput3D,Io as createJumpState2D,Jo as createJumpState3D,wt as createLight,mi as createLine,i as createNodeMaterialFromTSL,Pi as createParticleSystem,Wp as createPerspective,Ko as createPhysicsBodyComponent,nt as createPill,yt as createPlane,Ei as createPlatformFollow,Qo as createPlatformer2DInputComponent,Uo as createPlatformer2DMovementComponent,Xo as createPlatformer2DStateComponent,$o as createPlatformer3DInputComponent,ea as createPlatformer3DMovementComponent,ra as createPlatformer3DStateComponent,tt as createPyramid,Dt as createRect,ta as createShooter2DStateComponent,hn as createSimulation,fp as createSongPlayer,Qr as createSphere,oi as createSprite,Kp as createStage,sp as createStageCutsceneHost,Si as createStrategyPan,ei as createText,oa as createThrusterInputComponent,aa as createThrusterMovementComponent,pa as createThrusterStateComponent,ia as createTopDownMovementComponent,ma as createTopDownMovementInputComponent,na as createTopDownMovementStateComponent,fa as createTransformComponent,Hm as createTransformStore,Op as createVariable,bt as createZone,Ta as crossfadeTransitionShader,Na as cutsceneLength,_r as cylinderCollision,Yr as cylinderMesh,ep as dbToGain,ee as debugState,Ne as defaultTouchControls,xa as defineBehavior,or as degreesToRadians,Lm as delay,Oi as destroy,yi as dispatchStageState,Ca as dollyPointAt,M as dot,Ga as easeValue,Bi as emitRuntimeGoal,Ci as emitRuntimeRicochet,Mi as emitRuntimeTriggerRegionEnter,rm as encodeWav,tm as encodeWavBlob,mp as ensureAudio,d as entityRepresentative,si as entitySpawner,Re as entityThumbnailCache,Xe as eulerToQuaternion,Va as evaluateCameraPose,Wa as evaluateCutscene,H as exp,bm as fadeOpacity,la as fireCooldown,sa as fireShooter2DIfRequested,s as float,B as floor,Qe as focusEntity,C as fract,rp as gainToDb,qe as gameConfig,Dp as getActiveLevelDocument,xp as getActiveSongPlayer,ca as getCooldown,da as getCooldownStore,je as getDisplayAspect,ya as getEntityFacingAngle2D,q as getGlobal,K as getGlobals,Se as getHoveredEntity,ye as getHoveredEntityId,Wm as getPosition,ke as getPresetResolution,Dr as getRotation,Ee as getSelectedEntity,me as getSelectedEntityId,fe as getSelectedEntityIds,le as getSnapSettings,bp as getVariable,Ym as getVelocity,$m as getZylemBridge,ym as globalChange,vm as globalChanges,va as hasAnyWorldBoundary2DHit,Ea as hasAnyWorldBoundary3DHit,di as initStageStateDispatcher,wp as intersectPlane,np as isAudioReady,p as isGLSLShader,ga as isManagedRenderEntity,ie as isPickMode,a as isTSLShader,X as isTransformTool,_e as isWebGPUSupported,Ya as itemsBetween,We as joystickBaseSvg,Ye as joystickThumbSvg,V as length,_a as lerpPose,Ha as lerpVec3,ip as loadTone,j as max,Rt as measureObjectSelectionBounds,He as mergeInputConfigs,Xa as midiToFrequency,$a as midiToNoteName,k as min,b as mix,Y as mod,_m as move,hm as moveBy,Vm as moveForwardXY,Rm as moveTo,Fm as moveX,Bm as moveXY,Cm as moveXZ,jm as moveY,km as moveZ,O as normalize,xr as normalizeVec2,lr as normalizeVec3,e as objectVertexShader,I as onGlobalChange,J as onGlobalChanges,Zm as onPress,Dm as onRelease,Tp as onVariableChange,Zp as onVariableChanges,gr as packCollisionGroups,ht as padSelectionBounds,um as parallel,Be as parseResolution,Sa as particleEffect,Aa as particlePresets,pi as pickZylemLine,Fr as pillCollision,zr as pillMesh,Wi as pingPongBeep,jr as planeCollision,L as positionWorld,P as positionWorldDirection,_ as pow,Ba as previousShot,Hr as pyramidCollision,Wr as pyramidMesh,$e as quaternionToEuler,ar as radiansToDegrees,ha as registerCooldown,re as registerDebugEntityResolver,Ke as registerEntityFocusContext,em as renderSong,wm as repeat,Gm as repeatForever,Ra as resetCooldown,Am as resetEntityOpacity,Mm as resetVelocity,Pa as resolveAim2D,Ve as resolveButtonAccent,te as resolveDebugEntity,Za as resolveRenderCategory,Pt as resolveSelectionBounds,Me as resolveTouchTheme,Vi as ricochetSound,Pm as rotateBy,vr as rotateEuler,dr as rotateInDirection,Sr as rotateX,Er as rotateY,yr as rotateYEuler,Ar as rotateZ,Ma as sampleDollyPath,Fa as sceneAt,op as scheduleSong,Xm as screenCenterLookDeltas,Um as screenCenterLookTargets,Qa as secondsToBeats,gm as sequence,de as setAddType,Ai as setCameraFeed,lp as setCutsceneTransitionShaders,ae as setDebugTool,z as setGlobal,ce as setGridVisible,ve as setHoveredEntityId,oe as setPaused,pe as setPickMode,zm as setPosition,Nm as setPositionX,qm as setPositionY,Im as setPositionZ,Tr as setRotation,Zr as setRotationDegrees,Lr as setRotationDegreesX,Rr as setRotationDegreesY,br as setRotationDegreesZ,Pr as setRotationX,hr as setRotationY,Or as setRotationZ,Ae as setSelectedEntity,ne as setSelectedEntityId,xe as setSelectedEntityIds,se as setSnapSettings,Hp as setStageFrameProfilerEnabled,Lp as setVariable,Qm as shortestAngleDelta,ja as shotAt,D as sin,T as smoothstep,tr as snapScale,er as snapToIncrement,rr as snapVec3,Ja as songLengthBeats,Ua as songLengthSeconds,wr as sphereCollision,Mr as sphereMesh,qp as stageConfig,Qp as stageState,r as standardShader,F as step,Ue as streamLevel,li as streamLevelOnStage,Tm as throttle,La as tickCooldowns,f as time,sr as toThreeVector2,cr as toThreeVector3,ze as touchButtonSvg,Ce as touchThemes,m as uniform,Oa as updateBoundaryRicochet,Pe as useArrowsForAxes,Oe as useArrowsForDirections,Le as useArrowsForSecondaryAxes,ba as useBehavior,Ze as useIJKLForAxes,De as useIJKLForDirections,we as useMouse,ge as useMouseLook,ue as useScreenCenterLook,Ge as useVirtualControls,Te as useWASDForAxes,be as useWASDForDirections,Da as usesManagedRenderPath,n as uv,Em as variableChange,Sm as variableChanges,W as vec2,x as vec3,l as vec4,Jp as vessel,Km as wrapAround3D,Jm as wrapAroundXY,kr as zoneCollision,Je as zylemEventBus};
@@ -1,18 +1,20 @@
1
1
  import { B as BaseNode } from './base-node-idopiSw5.js';
2
2
  import { h as SetupFunction, g as UpdateFunction, j as DestroyFunction, a as SetupContext, U as UpdateContext, D as DestroyContext, L as LoadingEvent } from './base-node-life-cycle-BK9xebT9.js';
3
- import { Scene, Color, Object3D, Vector3, BufferGeometry, Material, Group, Texture } from 'three';
4
- import { an as ZylemWorld, al as EntityTypeMap } from './entity-type-map-B0S5cfv7.js';
3
+ import { Box3, Scene, Color, Object3D, Vector3, BufferGeometry, Material, Group, Texture, Camera } from 'three';
4
+ import { an as ZylemWorld, al as EntityTypeMap } from './entity-type-map-BMaPY8cd.js';
5
5
  import { E as Entity, L as LifecycleFunction, S as StageEntity } from './entity-BIf_a4dl.js';
6
- import { G as GameEntity, a as GameEntityOptions } from './entity-DC0P747T.js';
7
- import { l as ZylemCamera, R as RendererManager, e as CameraPerspective, d as CameraContext, C as CameraPose, P as PerspectiveType, f as CameraBehavior, g as CameraAction, h as CameraPipelineState, V as Viewport, Z as ZylemPostEffect } from './zylem-camera-CWhIGXlW.js';
8
- import { d as ZylemShader } from './material-CxxAyJYp.js';
6
+ import { G as GameEntity, d as GameEntityOptions, b as PointerTargetEntity } from './entity-CY75JJSw.js';
7
+ import { l as ZylemCamera, R as RendererManager, e as CameraPerspective, d as CameraContext, C as CameraPose, P as PerspectiveType, f as CameraBehavior, g as CameraAction, h as CameraPipelineState, V as Viewport, Z as ZylemPostEffect } from './zylem-camera-BA3VPFlS.js';
8
+ import { f as ZylemShader } from './material-D1IVeQc5.js';
9
9
  import { a as SimulationBody } from './simulation-body-zQw-emOr.js';
10
10
  import { e as Vec3Input, b as Vec2Input, d as Vec3Components } from './vector-D3eDzvcA.js';
11
11
  import { StageEvents } from './events.js';
12
12
  import { G as GameInputConfig } from './game-interfaces-vF5sRi1n.js';
13
+ import { A as ArmPlacementOptions, P as PlacementSession } from './placement-session-BNQoL7Jb.js';
13
14
  import { SwatchApplyResult, SceneOperationEntry, EntityApplySwatchPayload, SceneOperationPayload } from '@zylem/bridge';
14
15
  import { a as LevelSyncPayload, L as LevelDocument } from './level-types-D10LiOcn.js';
15
16
  import { BehaviorSystem, BehaviorEntityLink, BehaviorRuntime, BehaviorSystemFactory, BehaviorRef } from '@zylem/behaviors/core';
17
+ import { d as GizmoRay } from './transform-gizmo-DappLQ9w.js';
16
18
 
17
19
  /**
18
20
  * Editor-view cameras exist only while an editor is attached.
@@ -25,6 +27,8 @@ interface EditorCameraHost {
25
27
  ensureEditorCameras(): Promise<void>;
26
28
  destroyEditorCameras(): void;
27
29
  activateCameraById(id: string): boolean;
30
+ /** Copy the gameplay camera onto the free view, then show it. */
31
+ syncFreeCameraToGame(): void;
28
32
  }
29
33
 
30
34
  /**
@@ -48,6 +52,10 @@ declare class CameraManager implements EditorCameraHost {
48
52
  private _lockedEditorIds;
49
53
  /** Which editor views pan in screen space (the view plane). */
50
54
  private _screenSpacePanIds;
55
+ /** Side, top, and isometric views that have already been placed on the gameplay camera. */
56
+ private _framedEditorViews;
57
+ /** World boxes of stage entities, read when an orthographic view is first shown. */
58
+ private _entityBounds;
51
59
  /** Game camera to restore when the editor releases the main view. */
52
60
  private _rememberedGameCamera;
53
61
  /**
@@ -81,6 +89,16 @@ declare class CameraManager implements EditorCameraHost {
81
89
  activeEditorCameraId(): string | null;
82
90
  /** True after the four editor views have been created. */
83
91
  hasEditorCameras(): boolean;
92
+ /**
93
+ * World boxes used the first time side, top, or isometric is shown.
94
+ * Pass null to stop contributing boxes.
95
+ */
96
+ setEditorEntityBounds(read: (() => readonly Box3[]) | null): void;
97
+ /**
98
+ * Copy the gameplay camera onto the free view, then show that view.
99
+ * Waits for the editor cameras when they have not been created yet.
100
+ */
101
+ syncFreeCameraToGame(): void;
84
102
  /**
85
103
  * Get all registered cameras.
86
104
  */
@@ -168,6 +186,15 @@ declare class CameraManager implements EditorCameraHost {
168
186
  private showGameCamera;
169
187
  /** Enable orbit on the active editor view only. Inactive views keep their pose. */
170
188
  private syncEditorOrbit;
189
+ private isOrthographicEditorView;
190
+ /** Snapshot the gameplay camera onto the free orbit camera. Does not switch views. */
191
+ private copyFreeFromGame;
192
+ private copyGameplayProjection;
193
+ /**
194
+ * Place an orthographic view on the gameplay camera's look-at and fit the
195
+ * stage around that point. Returns false when there is no gameplay camera.
196
+ */
197
+ private frameOrthographicView;
171
198
  /** Stop game-camera orbit controls from sharing the canvas with an editor view. */
172
199
  private suspendOtherOrbits;
173
200
  private restoreOrbitFor;
@@ -917,8 +944,9 @@ interface SwatchApplyOutcome {
917
944
  * `PlacementGhost` — is live whenever a tool is armed, so the toolbar's buttons
918
945
  * work on their own. The debug layer — the wasm simulation's collider
919
946
  * wireframes — is the part `debugState.enabled` gates, and is torn down when
920
- * it goes off while the delegate stays alive to re-activate. Debug mode does
921
- * not switch cameras; picking and gizmos use whichever camera is rendering.
947
+ * it goes off while the delegate stays alive to re-activate. This delegate
948
+ * does not switch cameras; the bridge shows the free camera when debug is
949
+ * enabled. Picking and gizmos use whichever camera is rendering.
922
950
  *
923
951
  * Centralizes all of this so `ZylemStage` doesn't have to know about
924
952
  * raycasting, DOM input, or debug rendering.
@@ -1085,6 +1113,8 @@ declare class StageDebugDelegate {
1085
1113
  * physics raycast here and cannot preview itself.
1086
1114
  */
1087
1115
  private updatePlacementGhost;
1116
+ /** Selection boxes for the first side, top, and isometric placement. Level brushes are not included. */
1117
+ private editorEntityBoxes;
1088
1118
  /** Full teardown — unsubscribes from debugState and cleans up all resources. */
1089
1119
  dispose(): void;
1090
1120
  /**
@@ -1490,6 +1520,113 @@ declare class StageEntityDelegate {
1490
1520
  private unregisterBehaviorLinks;
1491
1521
  }
1492
1522
 
1523
+ /**
1524
+ * Geometry for the add tool's placement click.
1525
+ *
1526
+ * Split out from `StageDebugDelegate` because it is pure: rays and bounds in,
1527
+ * a position out, with no scene, world, or entity state involved. Placement is
1528
+ * also the part most worth pinning down — the fallback plane and the surface
1529
+ * offset are what make a click into empty space land somewhere sensible.
1530
+ */
1531
+
1532
+ /** A ray/collider intersection, as reported by the physics world. */
1533
+ interface PlacementHit {
1534
+ distance: number;
1535
+ normal: [number, number, number];
1536
+ }
1537
+
1538
+ /**
1539
+ * Play-mode pointer: hover areas, droppable areas, and click-to-place.
1540
+ *
1541
+ * The editor's Add tool owns the canvas while `isEditorInteractionActive()`
1542
+ * is true. This delegate stays out of that — an armed session is hidden and
1543
+ * not cancelled, and its listeners come off so the gizmo and the add ghost
1544
+ * keep the pointer. Left click is swallowed only when a placement commits or
1545
+ * a hover area handles the click, so an empty press still reaches the camera.
1546
+ */
1547
+
1548
+ interface StagePointerHost {
1549
+ getScene(): Scene | null;
1550
+ raycast(origin: Vector3, direction: Vector3, maxDistance: number): PlacementHit | null;
1551
+ addSpawn(entity: unknown): void;
1552
+ getCanvas(): HTMLElement | null;
1553
+ getCamera(): Camera | null;
1554
+ /** The durable stage should drop its saved session. Not called while repeating. */
1555
+ onSessionEnded?: () => void;
1556
+ }
1557
+ declare class StagePointerDelegate {
1558
+ private readonly host;
1559
+ private readonly unsubscribe;
1560
+ private readonly known;
1561
+ private readonly targets;
1562
+ private readonly bounds;
1563
+ private readonly raycaster;
1564
+ private readonly mouseNdc;
1565
+ private session;
1566
+ private view;
1567
+ private closing;
1568
+ private disposed;
1569
+ private hovered;
1570
+ private hoveredId;
1571
+ private lastAim;
1572
+ /** Test and host injection. When set, the camera ray is not used. */
1573
+ private rayOverride;
1574
+ private canvas;
1575
+ private listening;
1576
+ private keys;
1577
+ constructor(host: StagePointerHost);
1578
+ /** True while a click would still try to place. False during the fade-out. */
1579
+ get isPlacing(): boolean;
1580
+ get previewOpacity(): number;
1581
+ get previewPosition(): Vector3 | null;
1582
+ /**
1583
+ * Use this ray instead of the camera. Tests inject one; a live stage leaves
1584
+ * it null and rebuilds the ray from the canvas every frame so a moving
1585
+ * camera does not leave the preview behind.
1586
+ */
1587
+ setRay(ray: GizmoRay | null): void;
1588
+ /** Register a target that is not going through the stage entity list. */
1589
+ registerTarget(entity: PointerTargetEntity): void;
1590
+ unregisterTarget(uuid: string): void;
1591
+ arm(options: ArmPlacementOptions): void;
1592
+ setPayload(payload: unknown): void;
1593
+ setRepresentative(representative: ArmPlacementOptions['representative']): void;
1594
+ cancel(): void;
1595
+ update(delta: number): void;
1596
+ /**
1597
+ * @returns whether the press was handled. Unhandled presses are left for
1598
+ * the camera.
1599
+ */
1600
+ pointerDown(button: number): boolean;
1601
+ dispose(): void;
1602
+ private suspended;
1603
+ private mountView;
1604
+ private syncTarget;
1605
+ private resolveAim;
1606
+ private nearestArea;
1607
+ private hasDroppable;
1608
+ private surfacePoint;
1609
+ private present;
1610
+ private applyHover;
1611
+ private leaveHovered;
1612
+ private fire;
1613
+ private areaContext;
1614
+ private tryCommit;
1615
+ private pointContext;
1616
+ private notifyDrop;
1617
+ private finishCommit;
1618
+ private beginClose;
1619
+ private clickHovered;
1620
+ private currentRay;
1621
+ private syncListeners;
1622
+ private detachListeners;
1623
+ private detachPointer;
1624
+ private onPointerMove;
1625
+ private onPointerDown;
1626
+ private onKeyDown;
1627
+ private trackPointer;
1628
+ }
1629
+
1493
1630
  /**
1494
1631
  * The runtime heart of a loaded stage.
1495
1632
  *
@@ -1549,6 +1686,8 @@ declare class ZylemStage extends LifeCycleBase<ZylemStage> {
1549
1686
  scene: ZylemScene | null;
1550
1687
  renderStrategy: RenderStrategyManager | null;
1551
1688
  debugDelegate: StageDebugDelegate | null;
1689
+ /** Play-mode hover, drop, and click-to-place. Suspended while the editor tools are live. */
1690
+ readonly pointerDelegate: StagePointerDelegate;
1552
1691
  uuid: string;
1553
1692
  wrapperRef: Stage | null;
1554
1693
  camera?: CameraWrapper;
@@ -1659,6 +1798,9 @@ declare class Stage {
1659
1798
  private eventDelegate;
1660
1799
  /** Per-stage input configuration overrides. Merged with game-level defaults on stage load. */
1661
1800
  inputConfig: GameInputConfig | null;
1801
+ /** Placement armed before the runtime stage exists, applied on load. */
1802
+ private pendingPlacement;
1803
+ private placementGeneration;
1662
1804
  /**
1663
1805
  * Callback set by the game to trigger input reconfiguration
1664
1806
  * when this stage's input config changes at runtime.
@@ -1692,6 +1834,33 @@ declare class Stage {
1692
1834
  * @example stage.getEntityByName('scoreText', TEXT_TYPE)
1693
1835
  */
1694
1836
  getEntityByName<T extends symbol | void = void>(name: string, type?: T): T extends keyof EntityTypeMap ? EntityTypeMap[T] | undefined : BaseNode | undefined;
1837
+ /**
1838
+ * Follow the cursor with a representative and place an entity on left click.
1839
+ *
1840
+ * Click-to-place, not a drag. A hover area's `onClick` can call this to
1841
+ * pick something up. While the stage has any droppable, the click only
1842
+ * commits over one that accepts `payload`. Otherwise it lands on the
1843
+ * physics hit, or the ground plane. Right click, Escape, and
1844
+ * {@link cancelPlacement} fade the preview out.
1845
+ *
1846
+ * @example
1847
+ * stage.armPlacement({
1848
+ * payload: 'tower',
1849
+ * repeat: true,
1850
+ * representative: entityRepresentative(createBox, { opacity: 0.45 }),
1851
+ * spawnOnClick: ({ valid, position }) => valid ? createBox({ position }) : false,
1852
+ * });
1853
+ */
1854
+ armPlacement(options: ArmPlacementOptions): PlacementSession;
1855
+ /** Fade out the armed representative and ignore further placement clicks. */
1856
+ cancelPlacement(): this;
1857
+ /**
1858
+ * Drop the session the next load would re-arm.
1859
+ * The pointer delegate calls this after a cancel or a one-shot commit.
1860
+ * It does not touch the live preview — {@link cancelPlacement} does both.
1861
+ * @internal
1862
+ */
1863
+ abandonPlacement(): void;
1695
1864
  /**
1696
1865
  * Add a camera to this stage.
1697
1866
  * @param camera The ZylemCamera or CameraWrapper to add
@@ -0,0 +1,123 @@
1
+ import * as three from 'three';
2
+ import { Vector3, Group, Scene, Camera } from 'three';
3
+
4
+ type GizmoMode = 'translate' | 'rotate' | 'scale';
5
+ /** Single-axis, planar, and uniform handle identifiers. */
6
+ type GizmoAxis = 'x' | 'y' | 'z' | 'xy' | 'yz' | 'xz' | 'xyz';
7
+ /** A raw, unsnapped drag result in world space. */
8
+ type GizmoDelta = {
9
+ kind: 'translate';
10
+ offset: Vector3;
11
+ } | {
12
+ kind: 'rotate';
13
+ axis: Vector3;
14
+ angle: number;
15
+ } | {
16
+ kind: 'scale';
17
+ factor: Vector3;
18
+ };
19
+ /** A mouse ray in world space. */
20
+ interface GizmoRay {
21
+ origin: Vector3;
22
+ direction: Vector3;
23
+ }
24
+ /**
25
+ * Closest point along an infinite line to a ray, as a distance along the line.
26
+ *
27
+ * Returns `null` when the ray is close enough to parallel with the line that the
28
+ * closest point becomes unstable; see {@link MAX_DRAG_GAIN}.
29
+ */
30
+ declare function closestAxisValue(ray: GizmoRay, origin: Vector3, axis: Vector3): number | null;
31
+ /**
32
+ * Intersect a ray with the plane through `origin` with the given normal.
33
+ *
34
+ * Returns `null` for a plane seen too close to edge-on, where the hit point
35
+ * races away across the plane for very little pointer motion.
36
+ */
37
+ declare function intersectPlane(ray: GizmoRay, origin: Vector3, normal: Vector3, target: Vector3): Vector3 | null;
38
+ declare class TransformGizmo {
39
+ /** Root added to the scene; carries the pivot transform. */
40
+ readonly root: Group<three.Object3DEventMap>;
41
+ private scene;
42
+ private modeGroups;
43
+ private handles;
44
+ private materials;
45
+ private geometries;
46
+ private mode;
47
+ private highlighted;
48
+ private drag;
49
+ private raycaster;
50
+ constructor();
51
+ addTo(scene: Scene): void;
52
+ removeFromScene(): void;
53
+ dispose(): void;
54
+ setMode(mode: GizmoMode): void;
55
+ getMode(): GizmoMode;
56
+ /** Place the gizmo at a pivot and show it. */
57
+ show(pivot: Vector3): void;
58
+ hide(): void;
59
+ get visible(): boolean;
60
+ get pivot(): Vector3;
61
+ /**
62
+ * Keep the gizmo a constant size on screen.
63
+ *
64
+ * A world-sized gizmo is unusable in an orbit view: it fills the screen up
65
+ * close and disappears from a distance.
66
+ */
67
+ update(camera: Camera): void;
68
+ /**
69
+ * Which handle a ray hits, or `null`.
70
+ *
71
+ * Raycasts the gizmo's own meshes rather than the physics world. Handles are
72
+ * render-only objects with no colliders, so the physics raycast used to pick
73
+ * entities cannot see them at all.
74
+ */
75
+ pick(ray: GizmoRay): GizmoAxis | null;
76
+ /**
77
+ * Whether a handle can be dragged from the current viewing angle.
78
+ *
79
+ * Each handle type degenerates differently: an arrow aimed at the camera has
80
+ * no screen-space direction left to follow, while a plane quad or rotation
81
+ * ring seen edge-on turns a pixel of motion into a huge sweep across it.
82
+ */
83
+ private isHandleDraggable;
84
+ /** Tint a handle to show it is hovered or being dragged. */
85
+ setHighlight(axis: GizmoAxis | null): void;
86
+ /**
87
+ * Begin a drag on a handle.
88
+ *
89
+ * @returns `false` when the gesture cannot be tracked (a near-parallel view
90
+ * of the drag axis), so the caller can ignore the press rather than start a
91
+ * drag that would jump.
92
+ */
93
+ beginDrag(axis: GizmoAxis, ray: GizmoRay, camera: Camera): boolean;
94
+ /** Raw delta for the current pointer position, or `null` when unusable. */
95
+ updateDrag(ray: GizmoRay, camera: Camera): GizmoDelta | null;
96
+ endDrag(): void;
97
+ get isDragging(): boolean;
98
+ get draggingAxis(): GizmoAxis | null;
99
+ private isPlaneAxis;
100
+ /** Signed angle of the ray's hit point around `normal`, in radians. */
101
+ private angleOnPlane;
102
+ /** Distance from pivot to the ray hit on the camera-facing plane. */
103
+ private cameraPlaneRadius;
104
+ private applyModeVisibility;
105
+ private makeMaterial;
106
+ private track;
107
+ /**
108
+ * An invisible, generously sized mesh used only for hit testing.
109
+ *
110
+ * The visible shafts and rings are a couple of pixels wide, which is
111
+ * miserable to click. The raycaster still reaches `visible: false` meshes,
112
+ * so picking accuracy is decoupled from how thin the handle looks.
113
+ */
114
+ private makePicker;
115
+ private orientAlongAxis;
116
+ private buildTranslate;
117
+ private positionPlaneHandle;
118
+ private buildRotate;
119
+ private orientRing;
120
+ private buildScale;
121
+ }
122
+
123
+ export { type GizmoAxis as G, TransformGizmo as T, type GizmoDelta as a, type GizmoMode as b, closestAxisValue as c, type GizmoRay as d, intersectPlane as i };
@@ -1,17 +1,17 @@
1
- import { G as Game, D as DeviceProfile } from './game-mu6OSCrq.js';
2
- import { v as DebugTools } from './debug-state-DhVkY2aM.js';
1
+ import { G as Game, D as DeviceProfile } from './game-CmkhPP-9.js';
2
+ import { v as DebugTools } from './debug-state-BgX5Q0Ff.js';
3
3
  import './base-node-life-cycle-BK9xebT9.js';
4
4
  import 'three';
5
5
  import './stage-transition-CmGpV4tc.js';
6
6
  import './game-interfaces-vF5sRi1n.js';
7
7
  import './base-node-idopiSw5.js';
8
- import './stage-B_KdSEK6.js';
9
- import './entity-type-map-B0S5cfv7.js';
10
- import './entity-DC0P747T.js';
8
+ import './stage-CCGJh9TD.js';
9
+ import './entity-type-map-BMaPY8cd.js';
10
+ import './entity-CY75JJSw.js';
11
11
  import '@zylem/behaviors/core';
12
12
  import './simulation-body-zQw-emOr.js';
13
13
  import './vector-D3eDzvcA.js';
14
- import './material-CxxAyJYp.js';
14
+ import './material-D1IVeQc5.js';
15
15
  import 'three/webgpu';
16
16
  import './collision-builder-BckxkdmA.js';
17
17
  import './events.js';
@@ -20,9 +20,11 @@ import './selection-bounds-BKmSo9aG.js';
20
20
  import './entity-BIf_a4dl.js';
21
21
  import '@zylem/behaviors/particle-emitter';
22
22
  import 'three/addons/lines/webgpu/Line2.js';
23
- import './zylem-camera-CWhIGXlW.js';
23
+ import './zylem-camera-BA3VPFlS.js';
24
+ import './placement-session-BNQoL7Jb.js';
24
25
  import '@zylem/bridge';
25
26
  import './level-types-D10LiOcn.js';
27
+ import './transform-gizmo-DappLQ9w.js';
26
28
  import './default-controls-CAKJ5zlo.js';
27
29
 
28
30
  /**
@@ -514,6 +514,8 @@ declare class ZylemCamera {
514
514
  * to ignore pointer input while another camera is showing.
515
515
  */
516
516
  armEditorOrbit(lockRotation: boolean, screenSpacePan?: boolean): void;
517
+ /** Let this camera orbit below the horizon. Set before controls are created. */
518
+ allowFullOrbit(): void;
517
519
  /** Ignore pointer input without disposing orbit controls or their pose. */
518
520
  disarmEditorOrbit(): void;
519
521
  /**
@@ -566,6 +568,13 @@ declare class ZylemCamera {
566
568
  * Seed the debug orbit camera to an initial pose.
567
569
  */
568
570
  seedDebugOrbitPose(position: Vector3, lookAt: Vector3): void;
571
+ /** Write an orbit pose even when one was already seeded. */
572
+ replaceOrbitPose(position: Vector3, lookAt: Vector3): void;
573
+ /**
574
+ * Resize an orthographic editor view. `frustumSize` is the visible height;
575
+ * width follows the screen aspect, matching {@link resize}.
576
+ */
577
+ applyOrthographicFrame(frustumSize: number, near: number, far: number): void;
569
578
  /** Whether the debug orbit camera has received its initial pose. */
570
579
  isDebugOrbitPoseSeeded(): boolean;
571
580
  /**