@zylem/game-lib 0.8.0 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions.d.ts +6 -6
- package/dist/api/game-lib.api.json +3105 -1223
- package/dist/api/game-lib.api.md +197 -96
- package/dist/api/game-lib.d.ts +448 -96
- package/dist/api/game-lib.typedoc.json +134986 -201814
- package/dist/{base-node-life-cycle-D2NuN1VB.d.ts → base-node-life-cycle-BK9xebT9.d.ts} +6 -0
- package/dist/bridge.d.ts +97 -0
- package/dist/bridge.js +1 -0
- package/dist/chunk-2VSVOPQN.js +19 -0
- package/dist/chunk-3I537JFL.js +1 -0
- package/dist/chunk-47DG7I7M.js +1 -0
- package/dist/chunk-7QF6YTEZ.js +1 -0
- package/dist/chunk-AIQ6IVT5.js +1 -0
- package/dist/chunk-C5NEGC3S.js +1 -0
- package/dist/chunk-CV75NSES.js +1 -0
- package/dist/chunk-EVYHPR3J.js +1 -0
- package/dist/chunk-GKHAJ3MW.js +1 -0
- package/dist/chunk-HNCTOJP7.js +1 -0
- package/dist/{chunk-M3XNO56P.js → chunk-JNFFTNMH.js} +1 -1
- package/dist/{chunk-XNDS4YFR.js → chunk-LGS5N5M4.js} +1 -1
- package/dist/chunk-LKFF6XJC.js +1 -0
- package/dist/{chunk-RXDTAWI2.js → chunk-PCFF4LLO.js} +1 -1
- package/dist/chunk-Q27ULMXY.js +24 -0
- package/dist/chunk-TV3AZKT4.js +9 -0
- package/dist/chunk-UG22Z42P.js +1 -0
- package/dist/chunk-W5SXED5T.js +1 -0
- package/dist/chunk-WVSYUWTT.js +1 -0
- package/dist/chunk-YAOXFYOD.js +1 -0
- package/dist/{collision-builder-jF-toPIl.d.ts → collision-builder-B_tm8OVy.d.ts} +13 -2
- package/dist/core.d.ts +15 -15
- package/dist/core.js +1 -1
- package/dist/debug-state-Dp9CQQZ4.d.ts +49 -0
- package/dist/debug.d.ts +27 -8
- package/dist/debug.js +1 -1
- package/dist/{default-controls-0-vCnli7.d.ts → default-controls-CAKJ5zlo.d.ts} +2 -2
- package/dist/{entity-DZbFQ1Wg.d.ts → entity-B9yZeBm4.d.ts} +7 -1
- package/dist/{entity-BdSI8CL3.d.ts → entity-BGEq1yfC.d.ts} +32 -4
- package/dist/{entity-type-map-Bd69SpAS.d.ts → entity-type-map-CW6RHQkx.d.ts} +5 -5
- package/dist/entity.d.ts +12 -10
- package/dist/entity.js +1 -1
- package/dist/events.d.ts +2 -65
- package/dist/events.js +1 -1
- package/dist/{game-C1FHVqXl.d.ts → game-NHkubIfI.d.ts} +89 -32
- package/dist/game-default-5TB3T5N7.js +1 -0
- package/dist/{game-interfaces-mchNYSZE.d.ts → game-interfaces-vF5sRi1n.d.ts} +7 -1
- package/dist/globals.d.ts +1 -1
- package/dist/graphics.d.ts +5 -5
- package/dist/input-ui.d.ts +4 -4
- package/dist/input-ui.js +1 -1
- package/dist/input.d.ts +47 -4
- package/dist/input.js +1 -1
- package/dist/{material-9vJ6SZaI.d.ts → material-DbSuZBbP.d.ts} +1 -1
- package/dist/public.d.ts +16 -14
- package/dist/public.js +1 -1
- package/dist/runtime.d.ts +3 -3
- package/dist/runtime.js +1 -1
- package/dist/schema/game-config.schema.json +18 -0
- package/dist/schema/input-config.schema.json +18 -0
- package/dist/schema.d.ts +12 -0
- package/dist/schema.js +1 -1
- package/dist/{vector-CiSHbivc.d.ts → vector-DN6zlPoE.d.ts} +28 -0
- package/dist/web-components.d.ts +12 -12
- package/dist/web-components.js +1 -1
- package/dist/{zylem-camera-C3bn6BTI.d.ts → zylem-camera-Du2UPW9O.d.ts} +13 -1
- package/package.json +8 -3
- package/dist/chunk-7FR5JSQ2.js +0 -1
- package/dist/chunk-COM6HJ2L.js +0 -1
- package/dist/chunk-E3UBSUPX.js +0 -1
- package/dist/chunk-FKIKN7RP.js +0 -24
- package/dist/chunk-G4HONLWC.js +0 -1
- package/dist/chunk-IKWE2W6L.js +0 -1
- package/dist/chunk-JEHFHUH4.js +0 -0
- package/dist/chunk-JNKPTL77.js +0 -1
- package/dist/chunk-JQKS42G4.js +0 -1
- package/dist/chunk-MSC2BEO5.js +0 -1
- package/dist/chunk-TAUWDQZF.js +0 -9
- package/dist/chunk-VS2D4B3W.js +0 -1
- package/dist/chunk-XNHVRFAK.js +0 -1
- package/dist/chunk-YHEWKN7N.js +0 -1
- package/dist/debug-state-BPT6jEog.d.ts +0 -17
- package/dist/game-default-QHROHW2O.js +0 -1
package/dist/input.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { b as InputPlayer } from './base-node-life-cycle-
|
|
2
|
-
export { A as AnalogState, d as ButtonName, B as ButtonState, c as InputGamepad, e as InputPlayerNumber, f as InputProvider, I as Inputs } from './base-node-life-cycle-
|
|
3
|
-
import { G as GameInputConfig, e as VirtualTouchConfig } from './game-interfaces-
|
|
1
|
+
import { b as InputPlayer } from './base-node-life-cycle-BK9xebT9.js';
|
|
2
|
+
export { A as AnalogState, d as ButtonName, B as ButtonState, c as InputGamepad, e as InputPlayerNumber, f as InputProvider, I as Inputs } from './base-node-life-cycle-BK9xebT9.js';
|
|
3
|
+
import { G as GameInputConfig, e as VirtualTouchConfig } from './game-interfaces-vF5sRi1n.js';
|
|
4
4
|
import 'three';
|
|
5
5
|
import './stage-transition-CmGpV4tc.js';
|
|
6
6
|
|
|
@@ -49,6 +49,15 @@ declare function useIJKLForDirections(player: InputPlayer): GameInputConfig;
|
|
|
49
49
|
declare function useMouseLook(player: InputPlayer, options?: {
|
|
50
50
|
sensitivity?: number;
|
|
51
51
|
}): GameInputConfig;
|
|
52
|
+
/**
|
|
53
|
+
* Enables screen-center mouse look (free cursor, no pointer lock).
|
|
54
|
+
* Cursor offset from the game canvas center maps to yaw/pitch up to `maxLookDegrees`.
|
|
55
|
+
* @example stage.setInputConfiguration(useScreenCenterLook('p1'));
|
|
56
|
+
*/
|
|
57
|
+
declare function useScreenCenterLook(player: InputPlayer, options?: {
|
|
58
|
+
maxLookDegrees?: number;
|
|
59
|
+
lookSensitivity?: number;
|
|
60
|
+
}): GameInputConfig;
|
|
52
61
|
/**
|
|
53
62
|
* Enables basic mouse input (no pointer lock) for the given player.
|
|
54
63
|
* @example stage.setInputConfiguration(useMouse('p1'));
|
|
@@ -70,4 +79,38 @@ declare function useVirtualControls(player: InputPlayer, options?: VirtualTouchC
|
|
|
70
79
|
*/
|
|
71
80
|
declare function mergeInputConfigs(...configs: GameInputConfig[]): GameInputConfig;
|
|
72
81
|
|
|
73
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Maps canvas-center-relative pointer offset to absolute yaw/pitch targets.
|
|
84
|
+
* Used with screen-center mouse look (free cursor, no pointer lock).
|
|
85
|
+
*/
|
|
86
|
+
interface ScreenCenterLookTargets {
|
|
87
|
+
targetYaw: number;
|
|
88
|
+
targetPitch: number;
|
|
89
|
+
}
|
|
90
|
+
interface ScreenCenterLookOptions {
|
|
91
|
+
maxLookDegrees?: number;
|
|
92
|
+
/** How fast cursor position pulls yaw/pitch toward target (lower = snappier). @default 2 */
|
|
93
|
+
lookSensitivity?: number;
|
|
94
|
+
}
|
|
95
|
+
/** Shortest signed angle from `from` to `to` in radians. */
|
|
96
|
+
declare function shortestAngleDelta(from: number, to: number): number;
|
|
97
|
+
/**
|
|
98
|
+
* Converts normalized pointer offset from viewport center to look angles.
|
|
99
|
+
*
|
|
100
|
+
* @param nx Horizontal offset from center (−1 = left edge, +1 = right edge).
|
|
101
|
+
* @param ny Vertical offset from center (−1 = top edge, +1 = bottom edge).
|
|
102
|
+
* @param maxDegrees Maximum yaw/pitch at viewport edges (default 45).
|
|
103
|
+
*/
|
|
104
|
+
declare function screenCenterLookTargets(nx: number, ny: number, maxDegrees?: number): ScreenCenterLookTargets;
|
|
105
|
+
/**
|
|
106
|
+
* Computes WASM look deltas that drive current yaw/pitch toward screen-center targets.
|
|
107
|
+
*
|
|
108
|
+
* `lookSensitivity` controls follow rate toward the cursor-mapped target (lower = snappier).
|
|
109
|
+
* WASM applies its own `look_sensitivity` multiplier to these deltas.
|
|
110
|
+
*/
|
|
111
|
+
declare function screenCenterLookDeltas(nx: number, ny: number, currentYaw: number, currentPitch: number, options?: ScreenCenterLookOptions): {
|
|
112
|
+
lookX: number;
|
|
113
|
+
lookY: number;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export { InputPlayer, type ScreenCenterLookOptions, type ScreenCenterLookTargets, mergeInputConfigs, screenCenterLookDeltas, screenCenterLookTargets, shortestAngleDelta, useArrowsForAxes, useArrowsForDirections, useArrowsForSecondaryAxes, useIJKLForAxes, useIJKLForDirections, useMouse, useMouseLook, useScreenCenterLook, useVirtualControls, useWASDForAxes, useWASDForDirections };
|
package/dist/input.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-
|
|
1
|
+
import{a as m,b as n,c as o}from"./chunk-7QF6YTEZ.js";import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-UG22Z42P.js";export{l as mergeInputConfigs,o as screenCenterLookDeltas,n as screenCenterLookTargets,m as shortestAngleDelta,a as useArrowsForAxes,c as useArrowsForDirections,b as useArrowsForSecondaryAxes,f as useIJKLForAxes,g as useIJKLForDirections,j as useMouse,h as useMouseLook,i as useScreenCenterLook,k as useVirtualControls,e as useWASDForAxes,d as useWASDForDirections};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Blending, Side, Color, Material } from 'three';
|
|
2
2
|
import { MeshBasicNodeMaterial } from 'three/webgpu';
|
|
3
|
-
import { b as Vec2Input } from './vector-
|
|
3
|
+
import { b as Vec2Input } from './vector-DN6zlPoE.js';
|
|
4
4
|
|
|
5
5
|
declare function shortHash(objString: string): string;
|
|
6
6
|
|
package/dist/public.d.ts
CHANGED
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
export { A as AspectRatio, q as AspectRatioValue, k as CameraManager, j as CameraOptions, C as CameraWrapper, D as DeviceProfile, p as FirstPersonOptions, l as FirstPersonPerspective, o as Fixed2DOptions, F as Fixed2DPerspective, G as Game, b as GameConfigLike, d as GameDeviceConfig, a as GameLoadingEvent, P as PerspectiveOptions, y as RenderBundleManager, z as RenderStrategyManager, R as ResolutionInput, e as ResolveGameConfigRuntime, v as RetroPreset, w as RetroPresetKey, x as RetroResolution, S as StageConfigLike, h as StageOptions, n as ThirdPersonOptions, T as ThirdPersonPerspective, i as createCamera, c as createGame, m as createPerspective, f as createStage, g as gameConfig, r as getDisplayAspect, t as getPresetResolution, u as parseResolution, s as stageConfig } from './game-
|
|
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-
|
|
1
|
+
export { A as AspectRatio, q as AspectRatioValue, k as CameraManager, j as CameraOptions, C as CameraWrapper, D as DeviceProfile, p as FirstPersonOptions, l as FirstPersonPerspective, o as Fixed2DOptions, F as Fixed2DPerspective, G as Game, b as GameConfigLike, d as GameDeviceConfig, a as GameLoadingEvent, P as PerspectiveOptions, y as RenderBundleManager, z as RenderStrategyManager, R as ResolutionInput, e as ResolveGameConfigRuntime, v as RetroPreset, w as RetroPresetKey, x as RetroResolution, S as StageConfigLike, h as StageOptions, n as ThirdPersonOptions, T as ThirdPersonPerspective, i as createCamera, c as createGame, m as createPerspective, f as createStage, g as gameConfig, r as getDisplayAspect, t as getPresetResolution, u as parseResolution, s as stageConfig } from './game-NHkubIfI.js';
|
|
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
3
|
export { CameraFeedOptions, FollowTargetOptions, RenderCategory, STAGE_STATE_CHANGE, StageManager, StageStateChangeEvent, Vect3, createFollowTarget, dispatchStageState, entitySpawner, initStageStateDispatcher, isManagedRenderEntity, resolveRenderCategory, setCameraFeed, setStageFrameProfilerEnabled, stageState, usesManagedRenderPath, vessel } from './core.js';
|
|
4
4
|
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';
|
|
5
|
-
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-
|
|
5
|
+
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';
|
|
6
6
|
export { S as StageTransitionConfig, a as StageTransitionEasing, Z as ZylemTransitionShader, c as crossfadeTransitionShader } from './stage-transition-CmGpV4tc.js';
|
|
7
|
-
export { g as CameraAction, f as CameraBehavior, d as CameraContext, e as CameraPerspective, j as CameraPipeline, h as CameraPipelineState, C as CameraPose, 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-
|
|
8
|
-
export { S as StageEntity } from './entity-
|
|
9
|
-
export { l as SimulationBody, S as SimulationStepClock, 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-
|
|
10
|
-
export { A as ACTOR_TYPE, $ as AmbientLightOptions, B as BOX_TYPE, z as CONE_TYPE, J as CYLINDER_TYPE, C as CollisionShapeType, D as DISK_TYPE, a1 as DirectionalLightOptions, aj as EntityForType, ai as EntityTypeMap, a7 as FOG_TYPE, a0 as HemisphereLightOptions, Y as LIGHT_TYPE, aa as LINE_TYPE, a4 as LightShadowOptions, ad as LinePickResult, n as OnEnterParams, o as OnExitParams, O as OnHeldParams, U as PARTICLE_SYSTEM_TYPE, M as PILL_TYPE, P as PLANE_TYPE, G as PYRAMID_TYPE, a2 as PointLightOptions, R as RECT_TYPE, S as SPHERE_TYPE, f as SPRITE_TYPE, a3 as SpotLightOptions, h as SpriteAnimation, g as SpriteImage, T as TEXT_TYPE, m as ZONE_TYPE, q as ZylemActor, Z as ZylemBox, y as ZylemCone, I as ZylemCylinder, w as ZylemDisk, a6 as ZylemFog, ag as ZylemFogHeightOptions, ah as ZylemFogNoiseOptions, ae as ZylemFogOptions, af as ZylemFogType, X as ZylemLight, _ as ZylemLightOptions, a9 as ZylemLine, ac as ZylemLineOptions, Q as ZylemParticleSystem, V as ZylemParticleSystemOptions, L as ZylemPill, j as ZylemPlane, F as ZylemPyramid, u as ZylemRect, b as ZylemSphere, e as ZylemSprite, s as ZylemText, l as ZylemZone, p as createActor, c as createBox, x as createCone, H as createCylinder, v as createDisk, a5 as createFog, W as createLight, a8 as createLine, N as createParticleSystem, K as createPill, i as createPlane, E as createPyramid, t as createRect, a as createSphere, d as createSprite, r as createText, k as createZone, ab as pickZylemLine } from './entity-type-map-
|
|
11
|
-
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-
|
|
7
|
+
export { g as CameraAction, f as CameraBehavior, d as CameraContext, e as CameraPerspective, j as CameraPipeline, h as CameraPipelineState, C as CameraPose, 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-Du2UPW9O.js';
|
|
8
|
+
export { S as StageEntity } from './entity-B9yZeBm4.js';
|
|
9
|
+
export { l as SimulationBody, S as SimulationStepClock, 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-DN6zlPoE.js';
|
|
10
|
+
export { A as ACTOR_TYPE, $ as AmbientLightOptions, B as BOX_TYPE, z as CONE_TYPE, J as CYLINDER_TYPE, C as CollisionShapeType, D as DISK_TYPE, a1 as DirectionalLightOptions, aj as EntityForType, ai as EntityTypeMap, a7 as FOG_TYPE, a0 as HemisphereLightOptions, Y as LIGHT_TYPE, aa as LINE_TYPE, a4 as LightShadowOptions, ad as LinePickResult, n as OnEnterParams, o as OnExitParams, O as OnHeldParams, U as PARTICLE_SYSTEM_TYPE, M as PILL_TYPE, P as PLANE_TYPE, G as PYRAMID_TYPE, a2 as PointLightOptions, R as RECT_TYPE, S as SPHERE_TYPE, f as SPRITE_TYPE, a3 as SpotLightOptions, h as SpriteAnimation, g as SpriteImage, T as TEXT_TYPE, m as ZONE_TYPE, q as ZylemActor, Z as ZylemBox, y as ZylemCone, I as ZylemCylinder, w as ZylemDisk, a6 as ZylemFog, ag as ZylemFogHeightOptions, ah as ZylemFogNoiseOptions, ae as ZylemFogOptions, af as ZylemFogType, X as ZylemLight, _ as ZylemLightOptions, a9 as ZylemLine, ac as ZylemLineOptions, Q as ZylemParticleSystem, V as ZylemParticleSystemOptions, L as ZylemPill, j as ZylemPlane, F as ZylemPyramid, u as ZylemRect, b as ZylemSphere, e as ZylemSprite, s as ZylemText, l as ZylemZone, p as createActor, c as createBox, x as createCone, H as createCylinder, v as createDisk, a5 as createFog, W as createLight, a8 as createLine, N as createParticleSystem, K as createPill, i as createPlane, E as createPyramid, t as createRect, a as createSphere, d as createSprite, r as createText, k as createZone, ab as pickZylemLine } from './entity-type-map-CW6RHQkx.js';
|
|
11
|
+
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-BGEq1yfC.js';
|
|
12
12
|
export { IconSize, IconSizePreset, ScreenAnchor, TemplateFactory, boxMesh, coneMesh, createCooldownIcon, createEntity, createEntityFactory, cylinderMesh, destroy, pillMesh, pyramidMesh, sphereMesh } from './entity.js';
|
|
13
13
|
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';
|
|
14
14
|
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';
|
|
15
15
|
export { FadeOpacityOptions, MoveByOptions, MoveToOptions, OpacityEntity, RotateByOptions, ThrottleOptions, applyTransformChanges, callFunc, delay, fadeOpacity, moveBy, moveTo, onPress, onRelease, parallel, repeat, repeatForever, resetEntityOpacity, rotateBy, sequence, throttle } from './actions.js';
|
|
16
16
|
export { BehaviorRuntime, EntityDefinition, EntityHandle, Simulation, SimulationBodyDefinition, SimulationColliderDefinition, SimulationEvent, SimulationFrame, SimulationOptions, StageBodyConfig, StageBodyInfo, StageBodyKind, StageBodyKindValue, StageBoundaryDim, StageColliderConfig, StageColliderShape, StageDebugRender, StageEvent, StageEventType, StagePose, StageRaycastHit, StageRenderSlot, StageRicochetDim, StageRicochetReflection, StageTopDownPlane, TransformState, createSimulation, createTransformStore, getPosition, getVelocity, move, moveForwardXY, moveX, moveXY, moveXZ, moveY, moveZ, resetVelocity, setPosition, setPositionX, setPositionY, setPositionZ, wrapAround3D, wrapAroundXY } from '@zylem/behaviors/core';
|
|
17
|
-
export { mergeInputConfigs, useArrowsForAxes, useArrowsForDirections, useArrowsForSecondaryAxes, useIJKLForAxes, useIJKLForDirections, useMouse, useMouseLook, useVirtualControls, useWASDForAxes, useWASDForDirections } from './input.js';
|
|
18
|
-
export { D as DefaultTouchControlsOptions, J as JoystickSelection, T as TouchTheme, b as TouchThemeName, d as defaultTouchControls, a as resolveButtonAccent, r as resolveTouchTheme, t as touchThemes } from './default-controls-
|
|
17
|
+
export { ScreenCenterLookOptions, ScreenCenterLookTargets, mergeInputConfigs, screenCenterLookDeltas, screenCenterLookTargets, shortestAngleDelta, useArrowsForAxes, useArrowsForDirections, useArrowsForSecondaryAxes, useIJKLForAxes, useIJKLForDirections, useMouse, useMouseLook, useScreenCenterLook, useVirtualControls, useWASDForAxes, useWASDForDirections } from './input.js';
|
|
18
|
+
export { D as DefaultTouchControlsOptions, J as JoystickSelection, T as TouchTheme, b as TouchThemeName, d as defaultTouchControls, a as resolveButtonAccent, r as resolveTouchTheme, t as touchThemes } from './default-controls-CAKJ5zlo.js';
|
|
19
19
|
export { TouchButtonSvgOptions, TouchThemeInput, joystickBaseSvg, joystickThumbSvg, touchButtonSvg } from './input-ui.js';
|
|
20
|
-
export {
|
|
20
|
+
export { EntityEvents, EventEmitterDelegate, GameEvents, GameLoadingPayload, StageEvents, ZylemEvents, zylemEventBus } from './events.js';
|
|
21
21
|
export { clearGlobalSubscriptions, createGlobal, createVariable, getGlobal, getGlobals, getVariable, globalChange, globalChanges, onGlobalChange, onGlobalChanges, onVariableChange, onVariableChanges, setGlobal, setVariable, variableChange, variableChanges } from './globals.js';
|
|
22
22
|
export { pingPongBeep, ricochetSound } from './audio.js';
|
|
23
23
|
export { Howl } from 'howler';
|
|
24
|
-
export { D as DebugTools, d as debugState, s as setDebugTool, a as setPaused, b as setSelectedEntity } from './debug-state-
|
|
24
|
+
export { k as DebugEntityResolver, D as DebugTools, d as debugState, i as getHoveredEntity, h as getHoveredEntityId, e as getSelectedEntity, g as getSelectedEntityId, r as registerDebugEntityResolver, j as resolveDebugEntity, s as setDebugTool, f as setHoveredEntityId, a as setPaused, b as setSelectedEntity, c as setSelectedEntityId } from './debug-state-Dp9CQQZ4.js';
|
|
25
25
|
export { EntityFocusContext, EntityThumbnailCache, EntityThumbnailCacheEntry, EntityThumbnailResult, entityThumbnailCache, focusEntity, registerEntityFocusContext } from './debug.js';
|
|
26
|
+
export { GameBridge, GameBridgeHost } from './bridge.js';
|
|
27
|
+
export { BRIDGE_READY_EVENT, BridgeChannel, BridgeDebugTool, BridgeHandler, GameLoadingPayload as BridgeLoadingPayload, BridgeMessageType, BridgeMessages, BridgeVec3, EditorToGameMessages, EntitySummaryPayload, EntityThumbnailPayload, GameConfigPayload, GameToEditorMessages, GameVariablePayload, StageConfigPayload, StageSnapshotPayload, ZylemBridge, announceBridgeReady, getZylemBridge } from '@zylem/bridge';
|
|
26
28
|
export { ZylemGameElement, ZylemGameState } from './web-components.js';
|
|
27
29
|
export { RuntimeBodyOptions, RuntimeColliderOptions, RuntimeCollisionBundle, buildBoxCollider, buildCapsuleCollider, buildConvexHullCollider, buildCylinderCollider, buildHeightfieldCollider, buildRuntimeBody, buildSphereCollider, buildTrimeshCollider, bundleRuntimeCollision } from './runtime.js';
|
|
28
30
|
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';
|
|
29
31
|
export { createBackgroundShader, objectVertexShader, standardShader } from './graphics.js';
|
|
30
|
-
export { d as ZylemShader, Z as ZylemShaderObject, b as ZylemTSLShader, c as createNodeMaterialFromTSL, a as isGLSLShader, i as isTSLShader } from './material-
|
|
32
|
+
export { d as ZylemShader, Z as ZylemShaderObject, b as ZylemTSLShader, c as createNodeMaterialFromTSL, a as isGLSLShader, i as isTSLShader } from './material-DbSuZBbP.js';
|
|
31
33
|
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';
|
|
32
|
-
export { p as packCollisionGroups } from './collision-builder-
|
|
34
|
+
export { p as packCollisionGroups } from './collision-builder-B_tm8OVy.js';
|
|
33
35
|
import 'three';
|
|
34
36
|
import '@sinclair/typebox';
|
|
35
37
|
import 'three/webgpu';
|
package/dist/public.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
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-DFLI7ICU.js";import{a as Va}from"./chunk-TAUWDQZF.js";import{a as qa,b as Aa,c as Ca,d as Ha,e as Ia,f as Ja,g as Ka,h as Qa,i as Ra,j as Ua,k as Xa,l as Ya,m as _a,n as $a,o as op,p as rp}from"./chunk-IKWE2W6L.js";import{A as kp,B as wp,C as zp,a as ep,b as tp,c as mp,d as ap,e as pp,f as fp,g as xp,h as ip,i as dp,j as cp,k as sp,l as np,m as lp,n as Sp,o as hp,p as yp,q as Lp,r as vp,s as Zp,t as bp,u as gp,v as up,w as Tp,x as jp,y as Fp,z as Wp}from"./chunk-M3XNO56P.js";import{a as po,b as fo,c as xo,d as io,e as Lo,f as Mr,g as Nr,h as Rr,i as Ur,j as Xr,k as Yr,l as _r,m as $r,n as oe,o as re}from"./chunk-FKIKN7RP.js";import{a as bo}from"./chunk-7GYFZKK7.js";import{a as K,b as Q}from"./chunk-COM6HJ2L.js";import{a as ao,c as go,d as uo,e as To,f as sr,g as nr,h as br,i as gr,k as ur,l as Tr,m as jr,n as Fr,o as Wr,p as kr,q as wr,r as zr,s as Br,t as Er,v as Gr}from"./chunk-JNKPTL77.js";import{c as vr,d as Zr}from"./chunk-VS2D4B3W.js";import{a as C,c as H,e as I,f as J}from"./chunk-JQKS42G4.js";import{b as xr}from"./chunk-G4HONLWC.js";import{A as ke,B as we,C as ze,D as Be,E as De,F as Ee,G as Ge,H as Me,I as Ne,J as Oe,K as Pe,L as Ve,M as qe,N as Ae,O as Ce,P as He,Q as Ie,R as Je,a as ee,b as te,c as me,d as ae,e as pe,f as fe,g as xe,h as ie,i as de,j as ce,k as se,l as ne,m as le,n as Se,o as he,p as ye,q as Le,r as ve,s as Ze,t as be,u as ge,v as ue,w as Te,x as je,y as Fe,z as We}from"./chunk-7FR5JSQ2.js";import{b as Or,c as Pr,d as Vr,e as qr,f as Ar,g as Cr,h as Hr,i as Ir,j as Jr,k as Kr,m as Qr}from"./chunk-XNDS4YFR.js";import{c as Uo,d as Xo,e as Yo,f as _o,g as $o,h as or,i as rr,j as er,n as tr,p as mr,t as ar,u as pr,v as fr,w as ir,x as dr,y as cr}from"./chunk-XNHVRFAK.js";import{a as o,b as r,h as e,i as t,k as m,l as a,m as p,n as f,o as x,p as i,q as d,r as c}from"./chunk-CM5YRNBJ.js";import{a as vo,b as Zo}from"./chunk-YHEWKN7N.js";import"./chunk-QXVH6POE.js";import{a as Ro}from"./chunk-E3UBSUPX.js";import{$ as Jt,$a as Jm,A as Lt,Aa as Lm,B as vt,Ba as vm,C as Zt,Ca as Zm,D as bt,Da as bm,E as gt,Ea as gm,F as ut,Fa as um,G as Tt,Ga as Tm,H as jt,Ha as jm,I as Ft,Ia as Fm,J as Wt,Ja as Wm,K as kt,Ka as km,L as wt,La as wm,M as zt,Ma as zm,N as Bt,Na as Bm,O as Dt,Oa as Dm,P as Et,Pa as Em,Q as Gt,Qa as Gm,R as Mt,Ra as Mm,S as Nt,Sa as Nm,T as Ot,Ta as Om,U as Pt,Ua as Pm,V as Vt,Va as Vm,W as qt,Wa as qm,X as At,Xa as Am,Y as Ct,Ya as Cm,Z as Ht,Za as Hm,_ as It,_a as Im,a as Ke,aa as Kt,ab as Km,b as Qe,ba as Qt,bb as Qm,c as Re,ca as Rt,cb as Rm,d as Ue,da as Ut,db as Um,e as Xe,ea as Xt,eb as Xm,f as Ye,fa as Yt,fb as Ym,g as _e,ga as _t,gb as _m,h as $e,ha as $t,hb as $m,i as ot,ia as om,ib as oa,j as rt,ja as rm,k as et,ka as em,l as tt,la as tm,m as mt,ma as mm,n as at,na as am,o as pt,oa as pm,p as ft,pa as fm,q as xt,qa as xm,r as it,ra as im,s as dt,sa as dm,t as ct,ta as cm,u as st,ua as sm,v as nt,va as nm,w as lt,wa as lm,x as St,xa as Sm,y as ht,ya as hm,z as yt,za as ym}from"./chunk-XK63E4SX.js";import{a as ra,b as ea,c as ta}from"./chunk-ZRT3ZQVH.js";import{a as ma,b as aa,c as pa,d as fa}from"./chunk-WQ3WMMZD.js";import{h as lr,i as Sr,j as hr,k as yr,l as Lr}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 jo,b as Fo,c as Wo,d as ko,g as wo,h as zo,i as Bo,j as Do}from"./chunk-7WRQ2UAN.js";import{A as Ga,B as Ma,C as Na,D as Oa,E as Pa,a as xa,b as ia,c as da,d as ca,e as sa,f as na,g as la,h as Sa,i as ha,j as ya,k as La,l as va,m as Za,n as ba,o as ga,p as ua,q as Ta,r as ja,s as Fa,t as Wa,u as ka,v as wa,w as za,x as Ba,y as Da,z as Ea}from"./chunk-IPWUDOV5.js";import{a as Dr}from"./chunk-BH53MBAZ.js";import{a as Eo,b as Go,c as Mo,d as No,e as Oo,f as Po,g as Vo,h as qo,i as Ao,j as Co,k as Ho,l as Io,m as Jo,n as Ko,o as Qo}from"./chunk-XRP4JJXL.js";import"./chunk-JEHFHUH4.js";import"./chunk-ORIDWL3T.js";import{a as co,b as so,c as no,d as lo,e as So,f as ho,g as yo}from"./chunk-RXDTAWI2.js";import{a as R,b as U,c as X,d as Y,e as _,f as $,g as oo,h as ro,i as eo,j as to,k as mo}from"./chunk-MSC2BEO5.js";export{ar as ACTOR_TYPE,po as AspectRatio,xe as BOX_TYPE,Ke as BoundaryRicochet3DCoordinator,Qe as BoundaryRicochetCoordinator,Fe as CONE_TYPE,De as CYLINDER_TYPE,kr as CameraManager,ur as CameraPipeline,wr as CameraWrapper,up as ColorJsonSchema,Re as CooldownBehavior,ue as DISK_TYPE,Ue as Destructible3DBehavior,Xe as DestructibleMesh,ip as EntityJsonSchema,tp as EntitySchema,K as EntityThumbnailCache,vo as EventEmitterDelegate,ir as FOG_TYPE,Ye as FirstPersonBehavior,_e as FirstPersonEvent,$e as FirstPersonFSM,Fr as FirstPersonPerspective,et as FirstPersonPresentation,ot as FirstPersonShooterCoordinator,rt as FirstPersonState,jr as Fixed2DPerspective,c as Fn,tt as FractureOptions,Rr as Game,zp as GameConfigJsonSchema,wp as GameDeviceConfigJsonSchema,gp as GameInputConfigSchema,bp as GameInputPlayerConfigSchema,ta as Howl,mt as Jumper2DBehavior,at as Jumper2DEvent,pt as Jumper2DFSM,ft as Jumper2DState,xt as Jumper3DBehavior,it as Jumper3DEvent,dt as Jumper3DFSM,ct as Jumper3DState,cp as KeyboardMappingSchema,Ae as LIGHT_TYPE,Hr as LINE_TYPE,fp as LineEntityDataSchema,Zp as MouseConfigSchema,sp as MouseMappingSchema,st as MultidirectionalSpaceShooterCoordinator,Pe as PARTICLE_SYSTEM_TYPE,Me as PILL_TYPE,le as PLANE_TYPE,we as PYRAMID_TYPE,nt as ParticleEmitterBehavior,gr as Perspectives,lt as Platformer2DBehavior,St as Platformer2DEvent,ht as Platformer2DFSM,yt as Platformer2DState,Lt as Platformer3DBehavior,vt as Platformer3DEvent,Zt as Platformer3DFSM,bt as Platformer3DState,Ze as RECT_TYPE,Jm as RUNTIME_BOUNDARY_2D_BEHAVIOR_KEY,Km as RUNTIME_DYNAMIC_CIRCLE_BODY_2D_BEHAVIOR_KEY,Qm as RUNTIME_GOAL_ZONE_2D_BEHAVIOR_KEY,Rm as RUNTIME_PLAYER_INPUT_2D_BEHAVIOR_KEY,Um as RUNTIME_RICOCHET_2D_BEHAVIOR_KEY,Xm as RUNTIME_TRIGGER_REGION_2D_BEHAVIOR_KEY,sr as RenderBundleManager,nr as RenderStrategyManager,kp as ResolutionInputSchema,gt as Ricochet2DBehavior,ut as Ricochet2DEvent,Tt as Ricochet2DFSM,jt as Ricochet2DState,Ft as Ricochet3DBehavior,Wt as Ricochet3DEvent,kt as Ricochet3DFSM,wt as Ricochet3DState,Vm as RuntimeBoundary2DBehavior,qm as RuntimeDynamicCircleBody2DBehavior,Am as RuntimeGoalZone2DBehavior,Cm as RuntimePlayerInput2DBehavior,Hm as RuntimeRicochet2DBehavior,Im as RuntimeTriggerRegion2DBehavior,ce as SPHERE_TYPE,qr as SPRITE_TYPE,Yr as STAGE_STATE_CHANGE,zt as ScreenVisibilityBehavior,Bt as ScreenVisibilityFSM,Dt as ScreenWrapBehavior,Et as ScreenWrapEvent,Gt as ScreenWrapFSM,Mt as ScreenWrapState,Nt as Shooter2DBehavior,xr as SimulationBody,xp as SpriteEntityDataSchema,Fp as StageAssetLoaderConfigSchema,Ua as StageBodyKind,Xa as StageBoundaryDim,Wp as StageConfigJsonSchema,Ya as StageEventType,jp as StageGLTFAssetLoaderConfigSchema,dp as StageJsonSchema,Nr as StageManager,_a as StageRicochetDim,$a as StageRicochetReflection,mp as StageSchema,op as StageTopDownPlane,Or as TEXT_TYPE,ap as TextEntityDataSchema,Tr as ThirdPersonPerspective,Ot as ThrusterBehavior,Pt as ThrusterEvent,Vt as ThrusterFSM,qt as ThrusterState,At as TopDownMovementBehavior,Ct as TopDownShooterCoordinator,Fo as VEC2_ONE,jo as VEC2_ZERO,ko as VEC3_ONE,Wo as VEC3_ZERO,Tp as Vec3ComponentsSchema,ep as Vector2Schema,pp as Vector3TupleSchema,Sp as VirtualTouchButtonConfigSchema,yp as VirtualTouchButtonsConfigSchema,vp as VirtualTouchConfigSchema,hp as VirtualTouchJoystickConfigSchema,Lp as VirtualTouchJoysticksConfigSchema,lp as VirtualTouchPositionSchema,np as VirtualTouchStyleSchema,Ht as WorldBoundary2DBehavior,It as WorldBoundary2DEvent,Jt as WorldBoundary2DFSM,Kt as WorldBoundary2DState,Qt as WorldBoundary3DBehavior,Rt as WorldBoundary3DEvent,Ut as WorldBoundary3DFSM,Xt as WorldBoundary3DState,ye as ZONE_TYPE,pr as ZylemActor,ie as ZylemBox,We as ZylemCone,Ee as ZylemCylinder,Te as ZylemDisk,dr as ZylemFog,Va as ZylemGameElement,Ce as ZylemLight,Jr as ZylemLine,Ve as ZylemParticleSystem,Ne as ZylemPill,Se as ZylemPlane,ze as ZylemPyramid,be as ZylemRect,se as ZylemSphere,Ar as ZylemSprite,Pr as ZylemText,Le as ZylemZone,u as abs,Dr as applyTransformChanges,g as asin,b as atan,Ym as bindRuntimeDynamicCircleBody2DHandle,Uo as boxCollision,ee as boxMesh,Aa as buildBoxCollider,Ha as buildCapsuleCollider,Ja as buildConvexHullCollider,Ia as buildCylinderCollider,Qa as buildHeightfieldCollider,qa as buildRuntimeBody,Ca as buildSphereCollider,Ka as buildTrimeshCollider,Ra as bundleRuntimeCollision,na as callFunc,L as clamp,A as clearGlobalSubscriptions,Yt as computeWorldBoundary2DHits,_t as computeWorldBoundary3DHits,Yo as coneCollision,me as coneMesh,Z as cos,tr as create,fr as createActor,s as createBackgroundShader,de as createBox,zr as createCamera,ke as createCone,Ie as createCooldownIcon,Ge as createCylinder,je as createDisk,mr as createEntity,Qr as createEntityFactory,$t as createFirstPersonInputComponent,om as createFirstPersonMovementComponent,rm as createFirstPersonStateComponent,cr as createFog,oe as createFollowTarget,Ur as createGame,N as createGlobal,em as createJumpConfig2D,tm as createJumpConfig3D,mm as createJumpInput2D,am as createJumpInput3D,pm as createJumpState2D,fm as createJumpState3D,He as createLight,Kr as createLine,m as createNodeMaterialFromTSL,qe as createParticleSystem,Wr as createPerspective,xm as createPhysicsBodyComponent,Oe as createPill,he as createPlane,im as createPlatformer2DInputComponent,dm as createPlatformer2DMovementComponent,cm as createPlatformer2DStateComponent,sm as createPlatformer3DInputComponent,nm as createPlatformer3DMovementComponent,lm as createPlatformer3DStateComponent,Be as createPyramid,ge as createRect,Sm as createShooter2DStateComponent,rp as createSimulation,ne as createSphere,Cr as createSprite,Gr as createStage,Vr as createText,hm as createThrusterInputComponent,ym as createThrusterMovementComponent,Lm as createThrusterStateComponent,vm as createTopDownMovementComponent,Zm as createTopDownMovementInputComponent,bm as createTopDownMovementStateComponent,gm as createTransformComponent,ga as createTransformStore,Sr as createVariable,ve as createZone,bo as crossfadeTransitionShader,$o as cylinderCollision,pe as cylinderMesh,C as debugState,yo as defaultTouchControls,um as defineBehavior,sa as delay,Je as destroy,$r as dispatchStageState,B as dot,_m as emitRuntimeGoal,$m as emitRuntimeRicochet,oa as emitRuntimeTriggerRegionEnter,Xr as entitySpawner,Q as entityThumbnailCache,T as exp,la as fadeOpacity,Tm as fireCooldown,jm as fireShooter2DIfRequested,d as float,w as floor,Zr as focusEntity,z as fract,Lo as gameConfig,Fm as getCooldown,Wm as getCooldownStore,fo as getDisplayAspect,km as getEntityFacingAngle2D,O as getGlobal,q as getGlobals,Ba as getPosition,xo as getPresetResolution,Qo as getRotation,hr as getVariable,Da as getVelocity,ma as globalChange,aa as globalChanges,wm as hasAnyWorldBoundary2DHit,zm as hasAnyWorldBoundary3DHit,_r as initStageStateDispatcher,t as isGLSLShader,To as isManagedRenderEntity,e as isTSLShader,ao as isWebGPUSupported,lo as joystickBaseSvg,So as joystickThumbSvg,D as length,W as max,mo as mergeInputConfigs,k as min,h as mix,G as mod,ua as move,ia as moveBy,za as moveForwardXY,da as moveTo,Ta as moveX,Wa as moveXY,ka as moveXZ,ja as moveY,Fa as moveZ,S as normalize,wo as normalizeVec2,zo as normalizeVec3,o as objectVertexShader,P as onGlobalChange,V as onGlobalChanges,ha as onPress,ya as onRelease,yr as onVariableChange,Lr as onVariableChanges,Ro as packCollisionGroups,va as parallel,io as parseResolution,Bm as particleEffect,Dm as particlePresets,Ir as pickZylemLine,or as pillCollision,fe as pillMesh,ea as pingPongBeep,rr as planeCollision,l as positionWorld,n as positionWorldDirection,j as pow,_o as pyramidCollision,ae as pyramidMesh,Em as registerCooldown,vr as registerEntityFocusContext,Za as repeat,ba as repeatForever,Gm as resetCooldown,xa as resetEntityOpacity,wa as resetVelocity,Mm as resolveAim2D,no as resolveButtonAccent,go as resolveRenderCategory,so as resolveTouchTheme,ra as ricochetSound,ca as rotateBy,Mo as rotateEuler,Eo as rotateInDirection,Oo as rotateX,No as rotateY,Go as rotateYEuler,Po as rotateZ,La as sequence,re as setCameraFeed,I as setDebugTool,M as setGlobal,H as setPaused,Ea as setPosition,Ga as setPositionX,Ma as setPositionY,Na as setPositionZ,Jo as setRotation,Ko as setRotationDegrees,Co as setRotationDegreesX,qo as setRotationDegreesY,Io as setRotationDegreesZ,Ao as setRotationX,Vo as setRotationY,Ho as setRotationZ,J as setSelectedEntity,br as setStageFrameProfilerEnabled,lr as setVariable,v as sin,y as smoothstep,Xo as sphereCollision,te as sphereMesh,Br as stageConfig,Mr as stageState,r as standardShader,F as step,Sa as throttle,Nm as tickCooldowns,f as time,Bo as toThreeVector2,Do as toThreeVector3,ho as touchButtonSvg,co as touchThemes,a as uniform,Om as updateBoundaryRicochet,R as useArrowsForAxes,X as useArrowsForDirections,U as useArrowsForSecondaryAxes,Pm as useBehavior,$ as useIJKLForAxes,oo as useIJKLForDirections,eo as useMouse,ro as useMouseLook,to as useVirtualControls,_ as useWASDForAxes,Y as useWASDForDirections,uo as usesManagedRenderPath,p as uv,pa as variableChange,fa as variableChanges,E as vec2,x as vec3,i as vec4,Er as vessel,Pa as wrapAround3D,Oa as wrapAroundXY,er as zoneCollision,Zo as zylemEventBus};
|
|
1
|
+
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-DFLI7ICU.js";import{a as _a,b as $a,c as op}from"./chunk-HNCTOJP7.js";import{a as rp}from"./chunk-TV3AZKT4.js";import{a as ep,b as tp,c as mp,d as ap,e as pp,f as fp,g as xp,h as ip,i as dp,j as cp,k as sp,l as np,m as lp,n as Sp,o as hp,p as yp}from"./chunk-47DG7I7M.js";import{A as Ip,B as Jp,C as Kp,a as Lp,b as vp,c as Zp,d as bp,e as gp,f as up,g as Tp,h as jp,i as Fp,j as Wp,k as kp,l as wp,m as zp,n as Bp,o as Dp,p as Ep,q as Gp,r as Mp,s as Np,t as Op,u as Pp,v as Vp,w as qp,x as Ap,y as Cp,z as Hp}from"./chunk-JNFFTNMH.js";import{a as ho,b as yo,c as Lo,d as vo,e as Wo,f as Jr,g as Kr,h as me,i as ae,j as pe,k as fe,l as xe,m as ie,n as de,o as ce}from"./chunk-Q27ULMXY.js";import{a as So,c as Go,d as Mo,e as No,f as Tr,g as jr,h as Br,i as Dr,k as Er,l as Gr,m as Mr,n as Nr,o as Or,p as Pr,q as Vr,r as qr,s as Ar,t as Hr,v as Ir}from"./chunk-WVSYUWTT.js";import{a as Eo}from"./chunk-7GYFZKK7.js";import{a as oo,b as ro}from"./chunk-2VSVOPQN.js";import"./chunk-C5NEGC3S.js";import{c as Do}from"./chunk-GKHAJ3MW.js";import{a as zo,b as Bo}from"./chunk-LKFF6XJC.js";import{a as C,b as H,c as I,e as J,g as K,h as Q,i as R,j as U,k as X,m as Y,n as _,o as $}from"./chunk-W5SXED5T.js";import{b as Zr}from"./chunk-YAOXFYOD.js";import{A as Pe,B as Ve,C as qe,D as Ae,E as Ce,F as He,G as Ie,H as Je,I as Ke,J as Qe,K as Re,L as Ue,M as Xe,N as Ye,O as _e,P as $e,Q as ot,R as rt,a as se,b as ne,c as le,d as Se,e as he,f as ye,g as Le,h as ve,i as Ze,j as be,k as ge,l as ue,m as Te,n as je,o as Fe,p as We,q as ke,r as we,s as ze,t as Be,u as De,v as Ee,w as Ge,x as Me,y as Ne,z as Oe}from"./chunk-CV75NSES.js";import{b as Qr,c as Rr,d as Ur,e as Xr,f as Yr,g as _r,h as $r,i as oe,j as re,k as ee,m as te}from"./chunk-LGS5N5M4.js";import{A as vr,B as br,C as gr,D as ur,c as fr,d as xr,e as ir,f as dr,g as cr,h as sr,i as nr,j as lr,s as Sr,u as hr,y as yr,z as Lr}from"./chunk-3I537JFL.js";import{a as o,b as r,h as e,i as t,k as m,l as a,m as p,n as f,o as x,p as i,q as d,r as c}from"./chunk-CM5YRNBJ.js";import{a as ko,b as wo}from"./chunk-AIQ6IVT5.js";import"./chunk-QXVH6POE.js";import{b as pr}from"./chunk-EVYHPR3J.js";import{$ as rm,$a as ra,A as kt,Aa as km,B as wt,Ba as wm,C as zt,Ca as zm,D as Bt,Da as Bm,E as Dt,Ea as Dm,F as Et,Fa as Em,G as Gt,Ga as Gm,H as Mt,Ha as Mm,I as Nt,Ia as Nm,J as Ot,Ja as Om,K as Pt,Ka as Pm,L as Vt,La as Vm,M as qt,Ma as qm,N as At,Na as Am,O as Ct,Oa as Cm,P as Ht,Pa as Hm,Q as It,Qa as Im,R as Jt,Ra as Jm,S as Kt,Sa as Km,T as Qt,Ta as Qm,U as Rt,Ua as Rm,V as Ut,Va as Um,W as Xt,Wa as Xm,X as Yt,Xa as Ym,Y as _t,Ya as _m,Z as $t,Za as $m,_ as om,_a as oa,a as et,aa as em,ab as ea,b as tt,ba as tm,bb as ta,c as mt,ca as mm,cb as ma,d as at,da as am,db as aa,e as pt,ea as pm,eb as pa,f as ft,fa as fm,fb as fa,g as xt,ga as xm,gb as xa,h as it,ha as im,hb as ia,i as dt,ia as dm,ib as da,j as ct,ja as cm,k as st,ka as sm,l as nt,la as nm,m as lt,ma as lm,n as St,na as Sm,o as ht,oa as hm,p as yt,pa as ym,q as Lt,qa as Lm,r as vt,ra as vm,s as Zt,sa as Zm,t as bt,ta as bm,u as gt,ua as gm,v as ut,va as um,w as Tt,wa as Tm,x as jt,xa as jm,y as Ft,ya as Fm,z as Wt,za as Wm}from"./chunk-XK63E4SX.js";import{a as ca,b as sa,c as na}from"./chunk-ZRT3ZQVH.js";import{a as la,b as Sa,c as ha,d as ya}from"./chunk-WQ3WMMZD.js";import{h as Fr,i as Wr,j as kr,k as wr,l as zr}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 Oo,b as Po,c as Vo,d as qo,g as Ao,h as Co,i as Ho,j as Io}from"./chunk-7WRQ2UAN.js";import{A as Ia,B as Ja,C as Ka,D as Qa,E as Ra,a as La,b as va,c as Za,d as ba,e as ga,f as ua,g as Ta,h as ja,i as Fa,j as Wa,k as ka,l as wa,m as za,n as Ba,o as Da,p as Ea,q as Ga,r as Ma,s as Na,t as Oa,u as Pa,v as Va,w as qa,x as Aa,y as Ca,z as Ha}from"./chunk-IPWUDOV5.js";import{a as Cr}from"./chunk-BH53MBAZ.js";import{a as Jo,b as Ko,c as Qo,d as Ro,e as Uo,f as Xo,g as Yo,h as _o,i as $o,j as or,k as rr,l as er,m as tr,n as mr,o as ar}from"./chunk-XRP4JJXL.js";import{a as Ua,b as Xa,c as Ya}from"./chunk-7QF6YTEZ.js";import"./chunk-ORIDWL3T.js";import{a as Zo,b as bo,c as go,d as uo,e as To,f as jo,g as Fo}from"./chunk-PCFF4LLO.js";import{a as eo,b as to,c as mo,d as ao,e as po,f as fo,g as xo,h as io,i as co,j as so,k as no,l as lo}from"./chunk-UG22Z42P.js";export{yr as ACTOR_TYPE,ho as AspectRatio,Le as BOX_TYPE,op as BRIDGE_READY_EVENT,et as BoundaryRicochet3DCoordinator,tt as BoundaryRicochetCoordinator,Ne as CONE_TYPE,Ce as CYLINDER_TYPE,Pr as CameraManager,Er as CameraPipeline,Vr as CameraWrapper,Vp as ColorJsonSchema,mt as CooldownBehavior,Ee as DISK_TYPE,at as Destructible3DBehavior,pt as DestructibleMesh,jp as EntityJsonSchema,vp as EntitySchema,oo as EntityThumbnailCache,ko as EventEmitterDelegate,br as FOG_TYPE,ft as FirstPersonBehavior,xt as FirstPersonEvent,it as FirstPersonFSM,Nr as FirstPersonPerspective,st as FirstPersonPresentation,dt as FirstPersonShooterCoordinator,ct as FirstPersonState,Mr as Fixed2DPerspective,c as Fn,nt as FractureOptions,me as Game,Do as GameBridge,Kp as GameConfigJsonSchema,Jp as GameDeviceConfigJsonSchema,Pp as GameInputConfigSchema,Op as GameInputPlayerConfigSchema,na as Howl,lt as Jumper2DBehavior,St as Jumper2DEvent,ht as Jumper2DFSM,yt as Jumper2DState,Lt as Jumper3DBehavior,vt as Jumper3DEvent,Zt as Jumper3DFSM,bt as Jumper3DState,Wp as KeyboardMappingSchema,Ye as LIGHT_TYPE,$r as LINE_TYPE,up as LineEntityDataSchema,Np as MouseConfigSchema,kp as MouseMappingSchema,gt as MultidirectionalSpaceShooterCoordinator,Re as PARTICLE_SYSTEM_TYPE,Je as PILL_TYPE,Te as PLANE_TYPE,Ve as PYRAMID_TYPE,ut as ParticleEmitterBehavior,Dr as Perspectives,Tt as Platformer2DBehavior,jt as Platformer2DEvent,Ft as Platformer2DFSM,Wt as Platformer2DState,kt as Platformer3DBehavior,wt as Platformer3DEvent,zt as Platformer3DFSM,Bt as Platformer3DState,ze as RECT_TYPE,ra as RUNTIME_BOUNDARY_2D_BEHAVIOR_KEY,ea as RUNTIME_DYNAMIC_CIRCLE_BODY_2D_BEHAVIOR_KEY,ta as RUNTIME_GOAL_ZONE_2D_BEHAVIOR_KEY,ma as RUNTIME_PLAYER_INPUT_2D_BEHAVIOR_KEY,aa as RUNTIME_RICOCHET_2D_BEHAVIOR_KEY,pa as RUNTIME_TRIGGER_REGION_2D_BEHAVIOR_KEY,Tr as RenderBundleManager,jr as RenderStrategyManager,Ip as ResolutionInputSchema,Dt as Ricochet2DBehavior,Et as Ricochet2DEvent,Gt as Ricochet2DFSM,Mt as Ricochet2DState,Nt as Ricochet3DBehavior,Ot as Ricochet3DEvent,Pt as Ricochet3DFSM,Vt as Ricochet3DState,Um as RuntimeBoundary2DBehavior,Xm as RuntimeDynamicCircleBody2DBehavior,Ym as RuntimeGoalZone2DBehavior,_m as RuntimePlayerInput2DBehavior,$m as RuntimeRicochet2DBehavior,oa as RuntimeTriggerRegion2DBehavior,be as SPHERE_TYPE,Xr as SPRITE_TYPE,fe as STAGE_STATE_CHANGE,qt as ScreenVisibilityBehavior,At as ScreenVisibilityFSM,Ct as ScreenWrapBehavior,Ht as ScreenWrapEvent,It as ScreenWrapFSM,Jt as ScreenWrapState,Kt as Shooter2DBehavior,Zr as SimulationBody,Tp as SpriteEntityDataSchema,Cp as StageAssetLoaderConfigSchema,cp as StageBodyKind,sp as StageBoundaryDim,Hp as StageConfigJsonSchema,np as StageEventType,Ap as StageGLTFAssetLoaderConfigSchema,Fp as StageJsonSchema,Kr as StageManager,lp as StageRicochetDim,Sp as StageRicochetReflection,Zp as StageSchema,hp as StageTopDownPlane,Qr as TEXT_TYPE,bp as TextEntityDataSchema,Gr as ThirdPersonPerspective,Qt as ThrusterBehavior,Rt as ThrusterEvent,Ut as ThrusterFSM,Xt as ThrusterState,Yt as TopDownMovementBehavior,_t as TopDownShooterCoordinator,Po as VEC2_ONE,Oo as VEC2_ZERO,qo as VEC3_ONE,Vo as VEC3_ZERO,qp as Vec3ComponentsSchema,Lp as Vector2Schema,gp as Vector3TupleSchema,Bp as VirtualTouchButtonConfigSchema,Ep as VirtualTouchButtonsConfigSchema,Mp as VirtualTouchConfigSchema,Dp as VirtualTouchJoystickConfigSchema,Gp as VirtualTouchJoysticksConfigSchema,zp as VirtualTouchPositionSchema,wp as VirtualTouchStyleSchema,$t as WorldBoundary2DBehavior,om as WorldBoundary2DEvent,rm as WorldBoundary2DFSM,em as WorldBoundary2DState,tm as WorldBoundary3DBehavior,mm as WorldBoundary3DEvent,am as WorldBoundary3DFSM,pm as WorldBoundary3DState,We as ZONE_TYPE,Lr as ZylemActor,ve as ZylemBox,Oe as ZylemCone,He as ZylemCylinder,Ge as ZylemDisk,gr as ZylemFog,rp as ZylemGameElement,_e as ZylemLight,re as ZylemLine,Ue as ZylemParticleSystem,Ke as ZylemPill,je as ZylemPlane,qe as ZylemPyramid,Be as ZylemRect,ge as ZylemSphere,Yr as ZylemSprite,Rr as ZylemText,ke as ZylemZone,u as abs,$a as announceBridgeReady,Cr as applyTransformChanges,g as asin,b as atan,fa as bindRuntimeDynamicCircleBody2DHandle,fr as boxCollision,se as boxMesh,tp as buildBoxCollider,ap as buildCapsuleCollider,fp as buildConvexHullCollider,pp as buildCylinderCollider,ip as buildHeightfieldCollider,ep as buildRuntimeBody,mp as buildSphereCollider,xp as buildTrimeshCollider,dp as bundleRuntimeCollision,ua as callFunc,L as clamp,A as clearGlobalSubscriptions,fm as computeWorldBoundary2DHits,xm as computeWorldBoundary3DHits,ir as coneCollision,le as coneMesh,Z as cos,Sr as create,vr as createActor,s as createBackgroundShader,Ze as createBox,qr as createCamera,Pe as createCone,ot as createCooldownIcon,Ie as createCylinder,Me as createDisk,hr as createEntity,te as createEntityFactory,im as createFirstPersonInputComponent,dm as createFirstPersonMovementComponent,cm as createFirstPersonStateComponent,ur as createFog,de as createFollowTarget,ae as createGame,N as createGlobal,sm as createJumpConfig2D,nm as createJumpConfig3D,lm as createJumpInput2D,Sm as createJumpInput3D,hm as createJumpState2D,ym as createJumpState3D,$e as createLight,ee as createLine,m as createNodeMaterialFromTSL,Xe as createParticleSystem,Or as createPerspective,Lm as createPhysicsBodyComponent,Qe as createPill,Fe as createPlane,vm as createPlatformer2DInputComponent,Zm as createPlatformer2DMovementComponent,bm as createPlatformer2DStateComponent,gm as createPlatformer3DInputComponent,um as createPlatformer3DMovementComponent,Tm as createPlatformer3DStateComponent,Ae as createPyramid,De as createRect,jm as createShooter2DStateComponent,yp as createSimulation,ue as createSphere,_r as createSprite,Ir as createStage,Ur as createText,Fm as createThrusterInputComponent,Wm as createThrusterMovementComponent,km as createThrusterStateComponent,wm as createTopDownMovementComponent,zm as createTopDownMovementInputComponent,Bm as createTopDownMovementStateComponent,Dm as createTransformComponent,Da as createTransformStore,Wr as createVariable,we as createZone,Eo as crossfadeTransitionShader,cr as cylinderCollision,he as cylinderMesh,C as debugState,Fo as defaultTouchControls,Em as defineBehavior,ga as delay,rt as destroy,ie as dispatchStageState,B as dot,xa as emitRuntimeGoal,ia as emitRuntimeRicochet,da as emitRuntimeTriggerRegionEnter,pe as entitySpawner,ro as entityThumbnailCache,T as exp,Ta as fadeOpacity,Gm as fireCooldown,Mm as fireShooter2DIfRequested,d as float,w as floor,Bo as focusEntity,z as fract,Wo as gameConfig,Nm as getCooldown,Om as getCooldownStore,yo as getDisplayAspect,Pm as getEntityFacingAngle2D,O as getGlobal,q as getGlobals,_ as getHoveredEntity,U as getHoveredEntityId,Aa as getPosition,Lo as getPresetResolution,ar as getRotation,Y as getSelectedEntity,Q as getSelectedEntityId,kr as getVariable,Ca as getVelocity,_a as getZylemBridge,la as globalChange,Sa as globalChanges,Vm as hasAnyWorldBoundary2DHit,qm as hasAnyWorldBoundary3DHit,xe as initStageStateDispatcher,t as isGLSLShader,No as isManagedRenderEntity,e as isTSLShader,So as isWebGPUSupported,uo as joystickBaseSvg,To as joystickThumbSvg,D as length,W as max,lo as mergeInputConfigs,k as min,h as mix,G as mod,Ea as move,va as moveBy,qa as moveForwardXY,Za as moveTo,Ga as moveX,Oa as moveXY,Pa as moveXZ,Ma as moveY,Na as moveZ,S as normalize,Ao as normalizeVec2,Co as normalizeVec3,o as objectVertexShader,P as onGlobalChange,V as onGlobalChanges,Fa as onPress,Wa as onRelease,wr as onVariableChange,zr as onVariableChanges,pr as packCollisionGroups,wa as parallel,vo as parseResolution,Am as particleEffect,Cm as particlePresets,oe as pickZylemLine,sr as pillCollision,ye as pillMesh,sa as pingPongBeep,nr as planeCollision,l as positionWorld,n as positionWorldDirection,j as pow,dr as pyramidCollision,Se as pyramidMesh,Hm as registerCooldown,H as registerDebugEntityResolver,zo as registerEntityFocusContext,za as repeat,Ba as repeatForever,Im as resetCooldown,La as resetEntityOpacity,Va as resetVelocity,Jm as resolveAim2D,go as resolveButtonAccent,I as resolveDebugEntity,Go as resolveRenderCategory,bo as resolveTouchTheme,ca as ricochetSound,ba as rotateBy,Qo as rotateEuler,Jo as rotateInDirection,Uo as rotateX,Ro as rotateY,Ko as rotateYEuler,Xo as rotateZ,Ya as screenCenterLookDeltas,Xa as screenCenterLookTargets,ka as sequence,ce as setCameraFeed,K as setDebugTool,M as setGlobal,X as setHoveredEntityId,J as setPaused,Ha as setPosition,Ia as setPositionX,Ja as setPositionY,Ka as setPositionZ,tr as setRotation,mr as setRotationDegrees,or as setRotationDegreesX,_o as setRotationDegreesY,er as setRotationDegreesZ,$o as setRotationX,Yo as setRotationY,rr as setRotationZ,$ as setSelectedEntity,R as setSelectedEntityId,Br as setStageFrameProfilerEnabled,Fr as setVariable,Ua as shortestAngleDelta,v as sin,y as smoothstep,xr as sphereCollision,ne as sphereMesh,Ar as stageConfig,Jr as stageState,r as standardShader,F as step,ja as throttle,Km as tickCooldowns,f as time,Ho as toThreeVector2,Io as toThreeVector3,jo as touchButtonSvg,Zo as touchThemes,a as uniform,Qm as updateBoundaryRicochet,eo as useArrowsForAxes,mo as useArrowsForDirections,to as useArrowsForSecondaryAxes,Rm as useBehavior,fo as useIJKLForAxes,xo as useIJKLForDirections,so as useMouse,io as useMouseLook,co as useScreenCenterLook,no as useVirtualControls,po as useWASDForAxes,ao as useWASDForDirections,Mo as usesManagedRenderPath,p as uv,ha as variableChange,ya as variableChanges,E as vec2,x as vec3,i as vec4,Hr as vessel,Ra as wrapAround3D,Qa as wrapAroundXY,lr as zoneCollision,wo as zylemEventBus};
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { StageBodyKindValue, StageBodyConfig, StageColliderConfig } from '@zylem/behaviors/core';
|
|
2
2
|
export { BehaviorRuntime, EntityDefinition, EntityHandle, Simulation, SimulationBodyDefinition, SimulationColliderDefinition, SimulationEvent, SimulationFrame, SimulationOptions, StageBodyConfig, StageBodyInfo, StageBodyKind, StageBodyKindValue, StageBoundaryDim, StageColliderConfig, StageColliderShape, StageDebugRender, StageEvent, StageEventType, StagePose, StageRaycastHit, StageRenderSlot, StageRicochetDim, StageRicochetReflection, StageTopDownPlane, createSimulation } from '@zylem/behaviors/core';
|
|
3
|
-
import { e as Vec3Input } from './vector-
|
|
4
|
-
export { l as SimulationBody, S as SimulationStepClock } from './vector-
|
|
5
|
-
export { p as packCollisionGroups } from './collision-builder-
|
|
3
|
+
import { e as Vec3Input } from './vector-DN6zlPoE.js';
|
|
4
|
+
export { l as SimulationBody, S as SimulationStepClock } from './vector-DN6zlPoE.js';
|
|
5
|
+
export { p as packCollisionGroups } from './collision-builder-B_tm8OVy.js';
|
|
6
6
|
import 'three';
|
|
7
7
|
|
|
8
8
|
/**
|
package/dist/runtime.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as c,b as d,c as e,d as f,e as g,f as h,g as i,h as j,i as k,j as l,k as m,l as n,m as o,n as p,o as q,p as r}from"./chunk-
|
|
1
|
+
import{a as c,b as d,c as e,d as f,e as g,f as h,g as i,h as j,i as k,j as l,k as m,l as n,m as o,n as p,o as q,p as r}from"./chunk-47DG7I7M.js";import{b}from"./chunk-YAOXFYOD.js";import{b as a}from"./chunk-EVYHPR3J.js";import"./chunk-7WRQ2UAN.js";export{b as SimulationBody,l as StageBodyKind,m as StageBoundaryDim,n as StageEventType,o as StageRicochetDim,p as StageRicochetReflection,q as StageTopDownPlane,d as buildBoxCollider,f as buildCapsuleCollider,h as buildConvexHullCollider,g as buildCylinderCollider,j as buildHeightfieldCollider,c as buildRuntimeBody,e as buildSphereCollider,i as buildTrimeshCollider,k as bundleRuntimeCollision,r as createSimulation,a as packCollisionGroups};
|
|
@@ -65,6 +65,24 @@
|
|
|
65
65
|
},
|
|
66
66
|
"sensitivity": {
|
|
67
67
|
"type": "number"
|
|
68
|
+
},
|
|
69
|
+
"lookMode": {
|
|
70
|
+
"anyOf": [
|
|
71
|
+
{
|
|
72
|
+
"const": "delta",
|
|
73
|
+
"type": "string"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"const": "screenCenter",
|
|
77
|
+
"type": "string"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"maxLookDegrees": {
|
|
82
|
+
"type": "number"
|
|
83
|
+
},
|
|
84
|
+
"lookSensitivity": {
|
|
85
|
+
"type": "number"
|
|
68
86
|
}
|
|
69
87
|
}
|
|
70
88
|
},
|
|
@@ -44,6 +44,24 @@
|
|
|
44
44
|
},
|
|
45
45
|
"sensitivity": {
|
|
46
46
|
"type": "number"
|
|
47
|
+
},
|
|
48
|
+
"lookMode": {
|
|
49
|
+
"anyOf": [
|
|
50
|
+
{
|
|
51
|
+
"const": "delta",
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"const": "screenCenter",
|
|
56
|
+
"type": "string"
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"maxLookDegrees": {
|
|
61
|
+
"type": "number"
|
|
62
|
+
},
|
|
63
|
+
"lookSensitivity": {
|
|
64
|
+
"type": "number"
|
|
47
65
|
}
|
|
48
66
|
}
|
|
49
67
|
},
|
package/dist/schema.d.ts
CHANGED
|
@@ -204,6 +204,9 @@ declare const MouseConfigSchema: _sinclair_typebox.TObject<{
|
|
|
204
204
|
mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
|
|
205
205
|
pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
206
206
|
sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
207
|
+
lookMode: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"delta">, _sinclair_typebox.TLiteral<"screenCenter">]>>;
|
|
208
|
+
maxLookDegrees: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
209
|
+
lookSensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
207
210
|
}>;
|
|
208
211
|
/** Per-player input configuration. */
|
|
209
212
|
declare const GameInputPlayerConfigSchema: _sinclair_typebox.TObject<{
|
|
@@ -212,6 +215,9 @@ declare const GameInputPlayerConfigSchema: _sinclair_typebox.TObject<{
|
|
|
212
215
|
mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
|
|
213
216
|
pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
214
217
|
sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
218
|
+
lookMode: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"delta">, _sinclair_typebox.TLiteral<"screenCenter">]>>;
|
|
219
|
+
maxLookDegrees: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
220
|
+
lookSensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
215
221
|
}>>;
|
|
216
222
|
touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
217
223
|
enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
|
|
@@ -296,6 +302,9 @@ declare const GameInputConfigSchema: _sinclair_typebox.TRecord<_sinclair_typebox
|
|
|
296
302
|
mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
|
|
297
303
|
pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
298
304
|
sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
305
|
+
lookMode: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"delta">, _sinclair_typebox.TLiteral<"screenCenter">]>>;
|
|
306
|
+
maxLookDegrees: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
307
|
+
lookSensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
299
308
|
}>>;
|
|
300
309
|
touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
301
310
|
enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
|
|
@@ -439,6 +448,9 @@ declare const GameConfigJsonSchema: _sinclair_typebox.TObject<{
|
|
|
439
448
|
mapping: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>>;
|
|
440
449
|
pointerLock: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>;
|
|
441
450
|
sensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
451
|
+
lookMode: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"delta">, _sinclair_typebox.TLiteral<"screenCenter">]>>;
|
|
452
|
+
maxLookDegrees: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
453
|
+
lookSensitivity: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
|
|
442
454
|
}>>;
|
|
443
455
|
touch: _sinclair_typebox.TOptional<_sinclair_typebox.TObject<{
|
|
444
456
|
enabled: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TBoolean, _sinclair_typebox.TLiteral<"auto">]>>;
|
package/dist/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A,B,C,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-
|
|
1
|
+
import{A,B,C,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-JNFFTNMH.js";export{v as ColorJsonSchema,h as EntityJsonSchema,b as EntitySchema,C as GameConfigJsonSchema,B as GameDeviceConfigJsonSchema,u as GameInputConfigSchema,t as GameInputPlayerConfigSchema,j as KeyboardMappingSchema,f as LineEntityDataSchema,s as MouseConfigSchema,k as MouseMappingSchema,A as ResolutionInputSchema,g as SpriteEntityDataSchema,y as StageAssetLoaderConfigSchema,z as StageConfigJsonSchema,x as StageGLTFAssetLoaderConfigSchema,i as StageJsonSchema,c as StageSchema,d as TextEntityDataSchema,w as Vec3ComponentsSchema,a as Vector2Schema,e as Vector3TupleSchema,n as VirtualTouchButtonConfigSchema,p as VirtualTouchButtonsConfigSchema,r as VirtualTouchConfigSchema,o as VirtualTouchJoystickConfigSchema,q as VirtualTouchJoysticksConfigSchema,m as VirtualTouchPositionSchema,l as VirtualTouchStyleSchema};
|
|
@@ -36,7 +36,19 @@ declare class SimulationBody implements PhysicsRenderPoseProvider {
|
|
|
36
36
|
private readonly poseScratch;
|
|
37
37
|
private readonly renderScratch;
|
|
38
38
|
private readonly previousScratch;
|
|
39
|
+
/**
|
|
40
|
+
* First step at which the shared render buffers are coherent for this
|
|
41
|
+
* body. After a spawn or an explicit pose write (teleport), the current
|
|
42
|
+
* slot isn't written until the next fixed step and the previous-step
|
|
43
|
+
* copy lags one more; interpolating across that gap would sweep the
|
|
44
|
+
* mesh from a stale pose (often the origin). Until this step is
|
|
45
|
+
* reached, render reads collapse to the live body pose.
|
|
46
|
+
*/
|
|
47
|
+
private interpolationValidAfterStep;
|
|
39
48
|
constructor(simulation: Simulation, handle: EntityHandle, clock: SimulationStepClock);
|
|
49
|
+
/** Suppress interpolation until the render buffers catch up. */
|
|
50
|
+
private markPoseDiscontinuity;
|
|
51
|
+
private isInterpolationStale;
|
|
40
52
|
translation(): PhysicsVector3;
|
|
41
53
|
rotation(): PhysicsQuaternion;
|
|
42
54
|
linvel(): PhysicsVector3;
|
|
@@ -46,6 +58,22 @@ declare class SimulationBody implements PhysicsRenderPoseProvider {
|
|
|
46
58
|
setLinvel(velocity: PhysicsVector3, _wakeUp?: boolean): void;
|
|
47
59
|
setAngvel(velocity: PhysicsVector3, _wakeUp?: boolean): void;
|
|
48
60
|
applyImpulse(impulse: PhysicsVector3, _wakeUp?: boolean): void;
|
|
61
|
+
/**
|
|
62
|
+
* Rotation locks are fixed at body-creation time in the wasm runtime
|
|
63
|
+
* (`SimulationBodyDefinition.lockRotation`); there is no live setter FFI
|
|
64
|
+
* yet. Accepted for Rapier compat — when locking, the angular velocity is
|
|
65
|
+
* zeroed to approximate the intent. Prefer lock flags on the body
|
|
66
|
+
* definition at spawn time.
|
|
67
|
+
*/
|
|
68
|
+
lockRotations(locked: boolean, _wakeUp?: boolean): void;
|
|
69
|
+
/**
|
|
70
|
+
* Translation locks are fixed at body-creation time in the wasm runtime
|
|
71
|
+
* (`SimulationBodyDefinition.lockTranslation`); there is no live setter
|
|
72
|
+
* FFI yet. Accepted for Rapier compat — when locking, the linear velocity
|
|
73
|
+
* is zeroed to approximate the intent. Prefer lock flags on the body
|
|
74
|
+
* definition at spawn time.
|
|
75
|
+
*/
|
|
76
|
+
lockTranslations(locked: boolean, _wakeUp?: boolean): void;
|
|
49
77
|
/**
|
|
50
78
|
* Damping is fixed at body-creation time in the wasm runtime; there is no
|
|
51
79
|
* live setter FFI yet, so this is accepted (for `MoveableBodyLike`
|
package/dist/web-components.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { G as Game, D as DeviceProfile } from './game-
|
|
2
|
-
import { D as DebugTools } from './debug-state-
|
|
3
|
-
import './base-node-life-cycle-
|
|
1
|
+
import { G as Game, D as DeviceProfile } from './game-NHkubIfI.js';
|
|
2
|
+
import { D as DebugTools } from './debug-state-Dp9CQQZ4.js';
|
|
3
|
+
import './base-node-life-cycle-BK9xebT9.js';
|
|
4
4
|
import 'three';
|
|
5
5
|
import './stage-transition-CmGpV4tc.js';
|
|
6
|
-
import './game-interfaces-
|
|
7
|
-
import './entity-
|
|
6
|
+
import './game-interfaces-vF5sRi1n.js';
|
|
7
|
+
import './entity-BGEq1yfC.js';
|
|
8
8
|
import '@zylem/behaviors/core';
|
|
9
|
-
import './vector-
|
|
10
|
-
import './material-
|
|
9
|
+
import './vector-DN6zlPoE.js';
|
|
10
|
+
import './material-DbSuZBbP.js';
|
|
11
11
|
import 'three/webgpu';
|
|
12
|
-
import './collision-builder-
|
|
12
|
+
import './collision-builder-B_tm8OVy.js';
|
|
13
13
|
import './events.js';
|
|
14
14
|
import 'mitt';
|
|
15
|
-
import './entity-type-map-
|
|
16
|
-
import './entity-
|
|
15
|
+
import './entity-type-map-CW6RHQkx.js';
|
|
16
|
+
import './entity-B9yZeBm4.js';
|
|
17
17
|
import '@zylem/behaviors/particle-emitter';
|
|
18
18
|
import 'three/addons/lines/webgpu/Line2.js';
|
|
19
|
-
import './zylem-camera-
|
|
20
|
-
import './default-controls-
|
|
19
|
+
import './zylem-camera-Du2UPW9O.js';
|
|
20
|
+
import './default-controls-CAKJ5zlo.js';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* State interface for editor-to-game communication
|
package/dist/web-components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{a}from"./chunk-TV3AZKT4.js";import"./chunk-W5SXED5T.js";export{a as ZylemGameElement};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Object3D, Vector2, Scene, Camera, Vector3, Quaternion, RenderTarget, Texture } from 'three';
|
|
2
|
-
import { S as StageEntity } from './entity-
|
|
2
|
+
import { S as StageEntity } from './entity-B9yZeBm4.js';
|
|
3
3
|
import { WebGPURenderer, RenderPipeline } from 'three/webgpu';
|
|
4
4
|
import { R as ResolvedStageTransition } from './stage-transition-CmGpV4tc.js';
|
|
5
5
|
|
|
@@ -435,6 +435,8 @@ declare class ZylemCamera {
|
|
|
435
435
|
private _useOrbitalControls;
|
|
436
436
|
/** When true, debug-mode orbital controls are not attached to this camera. */
|
|
437
437
|
_skipDebugOrbit: boolean;
|
|
438
|
+
/** Dedicated debug-view camera (e.g. `__debug__`); uses simplified orbit path. */
|
|
439
|
+
isDebugViewCamera: boolean;
|
|
438
440
|
/** Reference to the shared renderer manager (set during setup). */
|
|
439
441
|
private _rendererManager;
|
|
440
442
|
/** Elapsed time tracker for CameraContext. */
|
|
@@ -521,6 +523,16 @@ declare class ZylemCamera {
|
|
|
521
523
|
* Dispose camera resources.
|
|
522
524
|
*/
|
|
523
525
|
destroy(): void;
|
|
526
|
+
/**
|
|
527
|
+
* Set the default orbit target for debug mode (e.g. origin anchor).
|
|
528
|
+
*/
|
|
529
|
+
setDefaultOrbitTarget(target: Object3D): void;
|
|
530
|
+
/**
|
|
531
|
+
* Seed the debug orbit camera to an initial pose.
|
|
532
|
+
*/
|
|
533
|
+
seedDebugOrbitPose(position: Vector3, lookAt: Vector3): void;
|
|
534
|
+
/** Whether the debug orbit camera has received its initial pose. */
|
|
535
|
+
isDebugOrbitPoseSeeded(): boolean;
|
|
524
536
|
/**
|
|
525
537
|
* Attach a delegate to react to debug state changes.
|
|
526
538
|
* Skipped when _skipDebugOrbit is true so the pipeline always runs.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zylem/game-lib",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A powerful and easy-to-use framework for creating simple 3D digital interactive applications using TypeScript.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -61,6 +61,10 @@
|
|
|
61
61
|
"types": "./dist/debug.d.ts",
|
|
62
62
|
"import": "./dist/debug.js"
|
|
63
63
|
},
|
|
64
|
+
"./bridge": {
|
|
65
|
+
"types": "./dist/bridge.d.ts",
|
|
66
|
+
"import": "./dist/bridge.js"
|
|
67
|
+
},
|
|
64
68
|
"./web-components": {
|
|
65
69
|
"types": "./dist/web-components.d.ts",
|
|
66
70
|
"import": "./dist/web-components.js"
|
|
@@ -101,7 +105,7 @@
|
|
|
101
105
|
"@dgreenheck/three-pinata": "^2.0.1",
|
|
102
106
|
"@sinclair/typebox": "^0.34.41",
|
|
103
107
|
"@types/howler": "^2.2.12",
|
|
104
|
-
"@zylem/behaviors": "
|
|
108
|
+
"@zylem/behaviors": "^0.5.8",
|
|
105
109
|
"comlink": "^4.4.2",
|
|
106
110
|
"howler": "^2.2.4",
|
|
107
111
|
"idb-keyval": "^6.2.2",
|
|
@@ -110,7 +114,8 @@
|
|
|
110
114
|
"stats.js": "^0.17.0",
|
|
111
115
|
"three": "^0.185.0",
|
|
112
116
|
"typescript-fsm": "^1.6.0",
|
|
113
|
-
"valtio": "^2.1.7"
|
|
117
|
+
"valtio": "^2.1.7",
|
|
118
|
+
"@zylem/bridge": "0.1.1"
|
|
114
119
|
},
|
|
115
120
|
"peerDependencies": {
|
|
116
121
|
"howler": "^2.2.4",
|
package/dist/chunk-7FR5JSQ2.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as P}from"./chunk-XNDS4YFR.js";import{a as Dt,b as Z,c as Y,d as N,e as W,f as X,g as U,h as j,j as q,k as m,l as S,m as p,o as x,p as R,q as $,r as K,s as D}from"./chunk-XNHVRFAK.js";import{j as Ft}from"./chunk-CM5YRNBJ.js";import{d as V,j as Rt}from"./chunk-4QLJUQSJ.js";import{a as It,b as gt,c as zt,d as Lt,g as Bt,h as xt,i as E,j as Ht}from"./chunk-7WRQ2UAN.js";import{Vector3 as Ge}from"three";import{BoxGeometry as ze,CapsuleGeometry as Le,ConeGeometry as Gt,CylinderGeometry as Be,Mesh as I,MeshStandardMaterial as He,SphereGeometry as Fe}from"three";function z(i,t=Symbol("mesh")){if(i.material||i.color){let e=new Ft;if(e.build({...i.material,color:i.color??i.material?.color},t),e.materials.length>0)return e.materials}return[new He]}function L(i,t){if(t.position){let e=xt(t.position,zt);i.position.set(e.x,e.y,e.z)}return i.castShadow=!0,i.receiveShadow=!0,i}function Q(i={}){let t=xt(i.size,Lt),e=new ze(t.x,t.y,t.z),o=z(i);return L(new I(e,o.at(-1)),i)}function J(i={}){let t=new Fe(i.radius??1),e=z(i);return L(new I(t,e.at(-1)),i)}function tt(i={}){let t=new Gt(i.radius??1,i.height??2,i.radialSegments??32),e=z(i);return L(new I(t,e.at(-1)),i)}function et(i={}){let t=new Gt(i.radius??1,i.height??2,4),e=z(i);return L(new I(t,e.at(-1)),i)}function it(i={}){let t=new Be(i.radiusTop??1,i.radiusBottom??1,i.height??2,i.radialSegments??32),e=z(i);return L(new I(t,e.at(-1)),i)}function ot(i={}){let t=new Le(i.radius??.5,i.length??1,i.capSegments??10,i.radialSegments??20),e=z(i);return L(new I(t,e.at(-1)),i)}var At={...m,size:new Ge(1,1,1)},kt=Symbol("Box"),nt=class i extends p{static type=kt;constructor(t){super(),this.options={...At,...t}}buildInfo(){let e=new P(this).buildDebugInfo(),{x:o,y:n,z:s}=this.options.size??{x:1,y:1,z:1};return{...e,type:String(i.type),size:`${o}, ${n}, ${s}`}}};function Vt(...i){let t=S(i,At),e=new nt(t);return e.add(Q({size:t.size,material:t.material,color:t.color}),Y({size:t.size,static:t.collision?.static,sensor:t.collision?.sensor,canSleep:t.collision?.canSleep,ccdEnabled:t.collision?.ccdEnabled,collisionType:t.collisionType,collisionFilter:t.collisionFilter})),x(e,o=>Vt(o??{}))}var Yt={...m,radius:1},Nt=Symbol("Sphere"),st=class i extends p{static type=Nt;constructor(t){super(),this.options={...Yt,...t}}buildInfo(){let e=new P(this).buildDebugInfo(),o=this.options.radius??1;return{...e,type:String(i.type),radius:o.toFixed(2)}}};function Wt(...i){let t=S(i,Yt),e=new st(t);return e.add(J({radius:t.radius,material:t.material,color:t.color}),N({radius:t.radius,static:t.collision?.static,sensor:t.collision?.sensor,collisionType:t.collisionType,collisionFilter:t.collisionFilter})),x(e,o=>Wt(o??{}))}import{PlaneGeometry as ke,Vector2 as Xt,Vector3 as Ut}from"three";import{BufferGeometry as Ae,Float32BufferAttribute as bt}from"three";var rt=class i extends Ae{constructor(t=1,e=1,o=1,n=1){super(),this.type="XZPlaneGeometry",this.parameters={width:t,height:e,widthSegments:o,heightSegments:n};let s=t/2,a=e/2,r=Math.floor(o),l=Math.floor(n),c=r+1,O=l+1,u=t/r,d=e/l,b=[],f=[],y=[],v=[];for(let g=0;g<O;g++){let h=g*d-a;for(let C=0;C<c;C++){let M=C*u-s;f.push(M,0,h),y.push(0,1,0),v.push(C/r),v.push(1-g/l)}}for(let g=0;g<l;g++)for(let h=0;h<r;h++){let C=h+c*g,M=h+c*(g+1),w=h+1+c*(g+1),_=h+1+c*g;b.push(C,M,_),b.push(M,w,_)}this.setIndex(b),this.setAttribute("position",new bt(f,3)),this.setAttribute("normal",new bt(y,3)),this.setAttribute("uv",new bt(v,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new i(t.width,t.height,t.widthSegments,t.heightSegments)}};var at=4,jt={...m,tile:new Xt(10,10),repeat:new Xt(1,1),collision:{static:!0},subdivisions:at,randomizeHeight:!1,heightScale:1};function qt(i){let t=i.subdivisions??at,e=i.heightMap2D,o=i.heightMap,n=i.subdivisionsX??t,s=i.subdivisionsZ??t;return e&&e.length>0&&e[0]?.length>0?(s=e.length-1,n=e[0].length-1):o&&o.length>0&&(n=o.length-1),{subdivisionsX:n,subdivisionsZ:s}}var Ot=class extends ${collider(t){let e=E(t.tile,gt),{subdivisionsX:o,subdivisionsZ:n}=qt(t),s=new Ut(e.x,1,e.y),a=t._builders?.meshBuilder?.heightData??new Float32Array((o+1)*(n+1));return{shape:{type:"heightfield",rows:o,cols:n,heights:a,scale:[s.x,1,s.z]}}}},Pt=class extends K{heightData=new Float32Array;columnsRows=new Map;subdivisionsX=at;subdivisionsZ=at;build(t){let e=E(t.tile,gt),{subdivisionsX:o,subdivisionsZ:n}=qt(t);this.subdivisionsX=o,this.subdivisionsZ=n;let s=new Ut(e.x,1,e.y),a=t.heightScale??1,r=new rt(s.x,s.z,o,n),l=new ke(s.x,s.z,o,n),c=o>0?s.x/o:1,O=n>0?s.z/n:1,u=r.attributes.position.array,d=l.attributes.position.array,b=new Map,f=t.heightMap2D,y=t.heightMap,v=t.randomizeHeight??!1,g=(h,C)=>h<0?0:h>C?C:h;for(let h=0;h<d.length;h+=3){let C=d[h],M=d[h+1],w=g(Math.round((C+s.x/2)/c),o),_=g(Math.round((s.z/2-M)/O),n),T=0;if(f){let Tt=f[_];Tt&&(T=Tt[w]??0)}else y&&y.length>0?T=y[w]??0:v&&(T=Math.random()*4);let A=T*a;d[h+2]=A,u[h+1]=A,b.get(_)||b.set(_,new Map),b.get(_).set(w,A)}return this.columnsRows=b,r}postBuild(){let t=[];for(let e=0;e<=this.subdivisionsX;++e)for(let o=0;o<=this.subdivisionsZ;++o){let n=this.columnsRows.get(o);t.push(n?.get(e)??0)}this.heightData=new Float32Array(t)}},wt=class extends D{createEntity(t){return new B(t)}},$t=Symbol("Plane"),B=class extends p{static type=$t;constructor(t){super(),this.options=Z(jt,t)}};function Kt(...i){return R({args:i,defaultConfig:jt,EntityClass:B,BuilderClass:wt,MeshBuilderClass:Pt,CollisionBuilderClass:Ot,entityType:B.type,cloneFactory:t=>Kt(t??{})})}import{Vector3 as Ve}from"three";var Qt={...m,size:new Ve(1,1,1),collision:{static:!0}},Jt=Symbol("Zone"),lt=class extends p{static type=Jt;_enteredZone=new Map;_exitedZone=new Map;_zoneEntities=new Map;constructor(t){super(),this.options=Z(Qt,t)}handlePostCollision({delta:t}){return this._enteredZone.forEach((e,o)=>{this.exited(t,o)}),this._enteredZone.size>0}handleIntersectionEvent({other:t,delta:e}){this._enteredZone.get(t.uuid)?this.held(e,t):(this.entered(t),this._zoneEntities.set(t.uuid,t))}onEnter(t){return this.options.onEnter=t,this}onHeld(t){return this.options.onHeld=t,this}onExit(t){return this.options.onExit=t,this}entered(t){this._enteredZone.set(t.uuid,1),this.options.onEnter&&this.options.onEnter({self:this,visitor:t,globals:V.globals})}exited(t,e){let o=this._exitedZone.get(e);if(o&&o>1+t){this._exitedZone.delete(e),this._enteredZone.delete(e);let n=this._zoneEntities.get(e);this.options.onExit&&this.options.onExit({self:this,visitor:n,globals:V.globals});return}this._exitedZone.set(e,1+t)}held(t,e){let o=this._enteredZone.get(e.uuid)??0;this._enteredZone.set(e.uuid,o+t),this._exitedZone.set(e.uuid,1),this.options.onHeld&&this.options.onHeld({delta:t,self:this,visitor:e,globals:V.globals,heldTime:o})}};function te(...i){let t=S(i,Qt),e=new lt(t);return e.add(q({size:t.size,static:t.collision?.static??!0,collisionType:t.collisionType,collisionFilter:t.collisionFilter})),x(e,o=>te(o??{}))}import{Color as ee,Group as Ye,Sprite as Ne,SpriteMaterial as We,CanvasTexture as ie,LinearFilter as pt,Vector2 as ct,ClampToEdgeWrapping as oe,ShaderMaterial as ne,Mesh as Xe,PlaneGeometry as Ue,Vector3 as se}from"three";var H={position:void 0,width:120,height:48,fillColor:"#FFFFFF",strokeColor:null,strokeWidth:0,radius:0,padding:0,stickToViewport:!0,screenPosition:new ct(24,24),zDistance:1,anchor:new ct(0,0)},St=class extends D{createEntity(t){return new F(t)}},re=Symbol("Rect"),F=class i extends p{static type=re;_sprite=null;_mesh=null;_texture=null;_canvas=null;_ctx=null;_cameraRef=null;_lastCanvasW=0;_lastCanvasH=0;constructor(t){super(),this.options=Z(H,t),this.options.screenPosition=E(this.options.screenPosition,H.screenPosition),this.options.anchor=E(this.options.anchor,H.anchor),this.group=new Ye,this.createSprite(),this.prependSetup(this.rectSetup.bind(this)),this.prependUpdate(this.rectUpdate.bind(this))}createSprite(){this._canvas=document.createElement("canvas"),this._ctx=this._canvas.getContext("2d"),this._texture=new ie(this._canvas),this._texture.minFilter=pt,this._texture.magFilter=pt;let t=new We({map:this._texture,transparent:!0,depthTest:!1,depthWrite:!1,alphaTest:.5});this._sprite=new Ne(t),this.group?.add(this._sprite),this.redrawRect()}redrawRect(){if(!this._canvas||!this._ctx)return;let t=Math.max(2,Math.floor(this.options.width??120)),e=Math.max(2,Math.floor(this.options.height??48)),o=this.options.padding??0,n=this.options.strokeWidth??0,s=t+o*2+n,a=e+o*2+n,r=Math.max(2,s),l=Math.max(2,a),c=r!==this._lastCanvasW||l!==this._lastCanvasH;this._canvas.width=r,this._canvas.height=l,this._lastCanvasW=r,this._lastCanvasH=l,this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height);let O=Math.max(0,this.options.radius??0),u=Math.floor(o+n/2),d=Math.floor(o+n/2),b=Math.floor(t),f=Math.floor(e);if(this._ctx.beginPath(),O>0?this.roundedRectPath(this._ctx,u,d,b,f,O):this._ctx.rect(u,d,b,f),this.options.fillColor&&(this._ctx.fillStyle=this.toCssColor(this.options.fillColor),this._ctx.fill()),this.options.strokeColor&&n>0&&(this._ctx.lineWidth=n,this._ctx.strokeStyle=this.toCssColor(this.options.strokeColor),this._ctx.stroke()),this._texture){if(c&&(this._texture.dispose(),this._texture=new ie(this._canvas),this._texture.minFilter=pt,this._texture.magFilter=pt,this._texture.wrapS=oe,this._texture.wrapT=oe,this._sprite&&this._sprite.material instanceof ne)){let y=this._sprite.material;y.uniforms?.tDiffuse&&(y.uniforms.tDiffuse.value=this._texture),y.uniforms?.iResolution&&y.uniforms.iResolution.value.set(this._canvas.width,this._canvas.height,1)}this._texture.image=this._canvas,this._texture.needsUpdate=!0,this._sprite&&this._sprite.material&&(this._sprite.material.map=this._texture,this._sprite.material.needsUpdate=!0)}}getWidth(){return this.options.width??0}getHeight(){return this.options.height??0}roundedRectPath(t,e,o,n,s,a){let r=Math.min(a,Math.floor(Math.min(n,s)/2));t.moveTo(e+r,o),t.lineTo(e+n-r,o),t.quadraticCurveTo(e+n,o,e+n,o+r),t.lineTo(e+n,o+s-r),t.quadraticCurveTo(e+n,o+s,e+n-r,o+s),t.lineTo(e+r,o+s),t.quadraticCurveTo(e,o+s,e,o+s-r),t.lineTo(e,o+r),t.quadraticCurveTo(e,o,e+r,o)}toCssColor(t){return typeof t=="string"?t:`#${(t instanceof ee?t:new ee(t)).getHexString()}`}getResolution(){try{let t=this._cameraRef?.renderer?.domElement;if(t)return{width:t.clientWidth||1,height:t.clientHeight||1}}catch{}return{width:this._cameraRef?.screenResolution?.x??1,height:this._cameraRef?.screenResolution?.y??1}}rectSetup(t){if(this._cameraRef=t.camera,this.options.stickToViewport&&this._cameraRef&&this._cameraRef.camera.add(this.group),this.materials?.length&&this._sprite){let e=this.materials[0];e instanceof ne&&(e.transparent=!0,e.depthTest=!1,e.depthWrite=!1,this._texture&&(e.uniforms?.tDiffuse&&(e.uniforms.tDiffuse.value=this._texture),e.uniforms?.iResolution&&this._canvas&&e.uniforms.iResolution.value.set(this._canvas.width,this._canvas.height,1)),this._mesh=new Xe(new Ue(1,1),e),this.group?.add(this._mesh),this._sprite.visible=!1)}}rectUpdate(t){if(this._sprite){if(this._cameraRef&&this.options.bounds){let e=this.computeScreenBoundsFromOptions(this.options.bounds);if(e){let{x:o,y:n,width:s,height:a}=e,r=Math.max(2,Math.floor(s)),l=Math.max(2,Math.floor(a)),c=r!==(this.options.width??0)||l!==(this.options.height??0);this.options.screenPosition=new ct(Math.floor(o),Math.floor(n)),this.options.width=r,this.options.height=l,this.options.anchor=new ct(0,0),c&&this.redrawRect()}}this.options.stickToViewport&&this._cameraRef&&this.updateStickyTransform()}}updateStickyTransform(){if(!this._sprite||!this._cameraRef)return;let t=this._cameraRef.camera,{width:e,height:o}=this.getResolution(),n=E(this.options.screenPosition,H.screenPosition),s=n.x,a=n.y,r=Math.max(.001,this.options.zDistance??1),l=1,c=1;if(t.isPerspectiveCamera){let w=t,_=Math.tan(w.fov*Math.PI/180/2)*r;l=_*w.aspect,c=_}else if(t.isOrthographicCamera){let w=t;l=(w.right-w.left)/2,c=(w.top-w.bottom)/2}let O=s/e*2-1,u=1-a/o*2,d=O*l,b=u*c,f=1,y=1;if(this._canvas){let _=c*2/o,T=this._canvas.height;y=Math.max(1e-4,T*_);let A=this._canvas.width/this._canvas.height;f=y*A,this._sprite.scale.set(f,y,1),this._mesh&&this._mesh.scale.set(f,y,1)}let v=E(this.options.anchor,H.anchor),g=Math.min(100,Math.max(0,v.x))/100,h=Math.min(100,Math.max(0,v.y))/100,C=(.5-g)*f,M=(h-.5)*y;this.group?.position.set(d+C,b+M,-r)}worldToScreen(t){if(!this._cameraRef)return{x:0,y:0};let e=this._cameraRef.camera,{width:o,height:n}=this.getResolution(),s=t.clone().project(e),a=(s.x+1)/2*o,r=(1-s.y)/2*n;return{x:a,y:r}}computeScreenBoundsFromOptions(t){if(!this._cameraRef)return null;if(t.screen)return{...t.screen};if(t.world){let{left:e,right:o,top:n,bottom:s,z:a=0}=t.world,r=this.worldToScreen(new se(e,n,a)),l=this.worldToScreen(new se(o,s,a)),c=Math.min(r.x,l.x),O=Math.min(r.y,l.y),u=Math.abs(l.x-r.x),d=Math.abs(l.y-r.y);return{x:c,y:O,width:u,height:d}}return null}updateRect(t){this.options={...this.options,...t},this.redrawRect(),this.options.stickToViewport&&this._cameraRef&&this.updateStickyTransform()}buildInfo(){return{...new P(this).buildDebugInfo(),type:String(i.type),width:this.options.width??0,height:this.options.height??0,sticky:this.options.stickToViewport}}};function ae(...i){return R({args:i,defaultConfig:{...H},EntityClass:F,BuilderClass:St,entityType:F.type,cloneFactory:t=>ae(t??{})})}import{Group as je,RingGeometry as qe}from"three";var le={...m,innerRadius:0,outerRadius:1,thetaSegments:32},Ct=class extends ${collider(t){let e=t.outerRadius??1;return{shape:{type:"cylinder",halfHeight:.1/2,radius:e}}}},_t=class extends K{build(t){let e=t.innerRadius??0,o=t.outerRadius??1,n=t.thetaSegments??32,s=new qe(e,o,n);return s.rotateX(-Math.PI/2),s}},vt=class extends D{createEntity(t){return new G(t)}build(){let t=super.build();return t.mesh&&!t.group&&(t.group=new je,t.group.add(t.mesh)),t}},pe=Symbol("Disk"),G=class i extends p{static type=pe;constructor(t){super(),this.options={...le,...t}}buildInfo(){let e=new P(this).buildDebugInfo(),o=this.options.innerRadius??0,n=this.options.outerRadius??1;return{...e,type:String(i.type),innerRadius:o.toFixed(2),outerRadius:n.toFixed(2)}}};function ce(...i){return R({args:i,defaultConfig:le,EntityClass:G,BuilderClass:vt,MeshBuilderClass:_t,CollisionBuilderClass:Ct,entityType:G.type,cloneFactory:t=>ce(t??{})})}var he={...m,radius:1,height:2,radialSegments:32},me=Symbol("Cone"),ht=class i extends p{static type=me;constructor(t){super(),this.options={...he,...t}}buildInfo(){let e=new P(this).buildDebugInfo(),o=this.options.radius??1,n=this.options.height??2;return{...e,type:String(i.type),radius:o.toFixed(2),height:n.toFixed(2)}}};function ue(...i){let t=S(i,he),e=new ht(t);return e.add(tt({radius:t.radius,height:t.height,radialSegments:t.radialSegments,material:t.material,color:t.color}),W({radius:t.radius,height:t.height,static:t.collision?.static,sensor:t.collision?.sensor,collisionType:t.collisionType,collisionFilter:t.collisionFilter})),x(e,o=>ue(o??{}))}var de={...m,radius:1,height:2},ye=Symbol("Pyramid"),mt=class i extends p{static type=ye;constructor(t){super(),this.options={...de,...t}}buildInfo(){let e=new P(this).buildDebugInfo(),o=this.options.radius??1,n=this.options.height??2;return{...e,type:String(i.type),radius:o.toFixed(2),height:n.toFixed(2)}}};function fe(...i){let t=S(i,de),e=new mt(t);return e.add(et({radius:t.radius,height:t.height,material:t.material,color:t.color}),X({radius:t.radius,height:t.height,static:t.collision?.static,sensor:t.collision?.sensor,collisionType:t.collisionType,collisionFilter:t.collisionFilter})),x(e,o=>fe(o??{}))}var ge={...m,radiusTop:1,radiusBottom:1,height:2,radialSegments:32},xe=Symbol("Cylinder"),ut=class i extends p{static type=xe;constructor(t){super(),this.options={...ge,...t}}buildInfo(){let e=new P(this).buildDebugInfo(),o=this.options.radiusTop??1,n=this.options.radiusBottom??1,s=this.options.height??2;return{...e,type:String(i.type),radiusTop:o.toFixed(2),radiusBottom:n.toFixed(2),height:s.toFixed(2)}}};function be(...i){let t=S(i,ge),e=new ut(t);return e.add(it({radiusTop:t.radiusTop,radiusBottom:t.radiusBottom,height:t.height,radialSegments:t.radialSegments,material:t.material,color:t.color}),U({radiusTop:t.radiusTop,radiusBottom:t.radiusBottom,height:t.height,static:t.collision?.static,sensor:t.collision?.sensor,collisionType:t.collisionType,collisionFilter:t.collisionFilter})),x(e,o=>be(o??{}))}var Oe={...m,radius:.5,length:1,capSegments:10,radialSegments:20},Pe=Symbol("Pill"),dt=class i extends p{static type=Pe;constructor(t){super(),this.options={...Oe,...t}}buildInfo(){let e=new P(this).buildDebugInfo(),o=this.options.radius??.5,n=this.options.length??1;return{...e,type:String(i.type),radius:o.toFixed(2),length:n.toFixed(2)}}};function we(...i){let t=S(i,Oe),e=new dt(t);return e.add(ot({radius:t.radius,length:t.length,capSegments:t.capSegments,radialSegments:t.radialSegments,material:t.material,color:t.color}),j({radius:t.radius,length:t.length,static:t.collision?.static,sensor:t.collision?.sensor,collisionType:t.collisionType,collisionFilter:t.collisionFilter})),x(e,o=>we(o??{}))}import{Group as $e,Quaternion as Ke,Vector3 as Qe}from"three";import{ParticleEmitterBehavior as Et}from"@zylem/behaviors/particle-emitter";var Je={...m,effect:{create(){throw new Error("createParticleSystem(...) requires an effect or preset definition.")}},preset:void 0,autoplay:!0,localOffset:void 0,followPosition:!0,followRotation:!0,autoDestroy:!1},Se=Symbol("ParticleSystem");function ti(i){return{effect:i.preset??i.effect,autoplay:i.autoplay,localOffset:i.localOffset,followPosition:i.followPosition,followRotation:i.followRotation,autoDestroy:i.autoDestroy}}var yt=class i extends p{static type=Se;particleHandle=null;constructor(t,e=!0){super(),this.options=Z(Je,t),this.group=new $e;let o=this.options.position;o&&this.group.position.copy(Ht(o)),this.__zylemParticleSystemEntity=!0,this.bindStandaloneTransforms(),e&&(this.particleHandle=this.use(Et,ti(this.options)))}bindStandaloneTransforms(){let t=()=>{this.options.position=new Qe(this.group?.position.x??0,this.group?.position.y??0,this.group?.position.z??0)},e=()=>{this.group&&(this._rotation2DAngle=this.group.rotation.z)};this.setPosition=(o,n,s)=>{this.group?.position.set(o,n,s),t()},this.setPositionX=o=>{this.group&&(this.group.position.x=o,t())},this.setPositionY=o=>{this.group&&(this.group.position.y=o,t())},this.setPositionZ=o=>{this.group&&(this.group.position.z=o,t())},this.getPosition=()=>this.group?{x:this.group.position.x,y:this.group.position.y,z:this.group.position.z}:null,this.setRotation=(o,n,s)=>{this.group?.rotation.set(o,n,s),e()},this.setRotationX=o=>{this.group&&(this.group.rotation.x=o,e())},this.setRotationY=o=>{this.group&&(this.group.rotation.y=o,e())},this.setRotationZ=o=>{this.group&&(this.group.rotation.z=o,e())},this.setRotationDegrees=(o,n,s)=>{this.group?.rotation.set(o*Math.PI/180,n*Math.PI/180,s*Math.PI/180),e()},this.setRotationDegreesX=o=>{this.group&&(this.group.rotation.x=o*Math.PI/180,e())},this.setRotationDegreesY=o=>{this.group&&(this.group.rotation.y=o*Math.PI/180,e())},this.setRotationDegreesZ=o=>{this.group&&(this.group.rotation.z=o*Math.PI/180,e())},this.rotateX=o=>{this.group?.rotateX(o),e()},this.rotateY=o=>{this.group?.rotateY(o),e()},this.rotateZ=o=>{this.group?.rotateZ(o),e()},this.getRotation=()=>{if(!this.group)return null;let o=new Ke;return this.group.getWorldQuaternion(o),o}}resolveParticleHandle(){if(this.particleHandle)return this.particleHandle;let t=this.getBehaviorRefs().find(n=>n.descriptor.key===Et.key);if(!t)return null;let e={getFSM:()=>t.fsm??null,getOptions:()=>t.options,ref:t},o=Et.createHandle?.(t)??{};return this.particleHandle={...e,...o},this.particleHandle}play(){this.resolveParticleHandle()?.play()}stop(){this.resolveParticleHandle()?.stop()}pause(){this.resolveParticleHandle()?.pause()}restart(){this.resolveParticleHandle()?.restart()}burst(){this.resolveParticleHandle()?.burst()}isPlaying(){return this.resolveParticleHandle()?.isPlaying()??!1}getSystem(){return this.resolveParticleHandle()?.getSystem()}buildInfo(){return{...super.buildInfo(),type:String(i.type)}}};function Ce(i,t=!0){let e=new yt(i,t);return x(e,o=>Ce(o,!1))}function ei(i){return Ce(i,!0)}import{AmbientLight as ii,DirectionalLight as oi,Group as ni,HemisphereLight as si,Object3D as ri,PointLight as ai,SpotLight as li}from"three";var _e=Symbol("Light"),pi={x:0,y:0,z:0},k=16777215,ci={mapSize:2048,near:.1,far:500,bias:0,radius:1,left:-100,right:100,top:100,bottom:-100},hi={mapSize:1024,near:.1,far:500,bias:0,radius:1},ft=class extends p{static type=_e;light=null;lightTarget=null;constructor(t){super(),this.options={...t}}create(){super.create();let t=new ni,{light:e,target:o}=mi(this.options);return t.add(e),o&&t.add(o),this.group=t,this.light=e,this.lightTarget=o,this}_cleanup(t){this.light?.shadow?.map?.dispose?.(),this.light=null,this.lightTarget=null,super._cleanup(t)}};function mi(i){switch(i.type){case"ambient":return{light:ui(i),target:null};case"hemisphere":return{light:di(i),target:null};case"directional":return yi(i);case"point":return{light:fi(i),target:null};case"spot":return gi(i)}}function ui(i){let t=new ii(i.color??k,i.intensity??1);return i.name&&(t.name=i.name),t}function di(i){let t=i.skyColor??i.color??k,e=i.groundColor??0,o=new si(t,e,i.intensity??1);return i.name&&(o.name=i.name),o}function yi(i){let t=new oi(i.color??k,i.intensity??1);i.name&&(t.name=i.name),xi(t,i.castShadow??!1,i.shadow);let e=ve(i.position,i.target);return e&&(t.target=e),{light:t,target:e}}function fi(i){let t=new ai(i.color??k,i.intensity??1,i.distance,i.decay);return i.name&&(t.name=i.name),Ee(t,i.castShadow??!1,i.shadow),t}function gi(i){let t=new li(i.color??k,i.intensity??1,i.distance,i.angle,i.penumbra,i.decay);i.name&&(t.name=i.name),Ee(t,i.castShadow??!1,i.shadow);let e=ve(i.position,i.target);return e&&(t.target=e),{light:t,target:e}}function ve(i,t){if(!t)return null;let e=i??pi,o=new ri;return o.position.set(t.x-e.x,t.y-e.y,t.z-e.z),o}function xi(i,t,e){if(!t){i.castShadow=!1;return}i.castShadow=!0;let o={...ci,...e??{}};i.shadow.mapSize.set(o.mapSize,o.mapSize),i.shadow.camera.near=o.near,i.shadow.camera.far=o.far,i.shadow.camera.left=o.left,i.shadow.camera.right=o.right,i.shadow.camera.top=o.top,i.shadow.camera.bottom=o.bottom,i.shadow.bias=o.bias,i.shadow.radius=o.radius,i.shadow.camera.updateProjectionMatrix()}function Ee(i,t,e){if(!t){i.castShadow=!1;return}i.castShadow=!0;let o={...hi,...e??{}};i.shadow.mapSize.set(o.mapSize,o.mapSize),i.shadow.camera.near=o.near,i.shadow.camera.far=o.far,i.shadow.bias=o.bias,i.shadow.radius=o.radius,i.shadow.camera.updateProjectionMatrix()}function bi(i){return new ft(i)}import{Group as Oi,Sprite as Pi,SpriteMaterial as wi,CanvasTexture as Si,LinearFilter as Ze,Color as Me,ClampToEdgeWrapping as Te}from"three";import{getCooldown as Re}from"@zylem/behaviors/cooldown";var Ci={"top-left":{fx:0,fy:0},"top-center":{fx:.5,fy:0},"top-right":{fx:1,fy:0},"center-left":{fx:0,fy:.5},center:{fx:.5,fy:.5},"center-right":{fx:1,fy:.5},"bottom-left":{fx:0,fy:1},"bottom-center":{fx:.5,fy:1},"bottom-right":{fx:1,fy:1}},De=192,_i={xs:8,sm:16,md:32,lg:48,xl:64},Zt={position:void 0,cooldown:"",iconSize:"md",fillColor:"#333333",showTimer:!0,stickToViewport:!0,screenAnchor:"top-left",screenPosition:{x:0,y:0},zDistance:1,overlayColor:"rgba(0, 0, 0, 0.65)"},vi=Symbol("CooldownIcon"),Mt=class extends p{static type=vi;_sprite=null;_texture=null;_canvas=null;_ctx=null;_cameraRef=null;_iconTexture=null;_iconImage=null;_lastRenderedProgress=-1;constructor(t){super(),this.options=Z(Zt,t),this.options.screenPosition=E(this.options.screenPosition,Zt.screenPosition),this.group=new Oi,this.createSprite(),this.prependSetup(this.iconSetup.bind(this)),this.prependUpdate(this.iconUpdate.bind(this)),this.onCleanup(this.iconDestroy.bind(this))}createSprite(){this._canvas=document.createElement("canvas"),this._canvas.width=256,this._canvas.height=256,this._ctx=this._canvas.getContext("2d"),this._texture=new Si(this._canvas),this._texture.minFilter=Ze,this._texture.magFilter=Ze,this._texture.wrapS=Te,this._texture.wrapT=Te;let e=new wi({map:this._texture,transparent:!0,depthTest:!1,depthWrite:!1});if(this._sprite=new Pi(e),this.group?.add(this._sprite),this.options.icon){let o=new Image;o.crossOrigin="anonymous",o.onload=()=>{this._iconImage=o,this.redraw(this._lastRenderedProgress>=0?this._lastRenderedProgress:1)},o.src=this.options.icon}this.redraw(1)}redraw(t){if(!this._canvas||!this._ctx)return;let e=this._ctx,o=this._canvas.width,n=this._canvas.height,s=o/2,a=n/2,r=Math.min(s,a);if(e.clearRect(0,0,o,n),this._iconImage?e.drawImage(this._iconImage,0,0,o,n):(e.fillStyle=this.toCssColor(this.options.fillColor??"#333333"),e.fillRect(0,0,o,n)),t<1){let l=(1-t)*Math.PI*2,c=-Math.PI/2,O=c+l;if(e.save(),e.fillStyle=this.options.overlayColor??"rgba(0, 0, 0, 0.65)",e.beginPath(),e.moveTo(s,a),e.arc(s,a,r+1,c,O,!1),e.closePath(),e.fill(),e.restore(),this.options.showTimer){let u=Re(this.options.cooldown);if(u){let d=Math.max(0,u.duration-u.elapsed),b=d>=10?Math.ceil(d).toString():d.toFixed(1),f=Math.floor(o*.3);e.font=`bold ${f}px sans-serif`,e.textAlign="center",e.textBaseline="middle",e.fillStyle="#FFFFFF",e.strokeStyle="#000000",e.lineWidth=2,e.strokeText(b,s,a),e.fillText(b,s,a)}}}this._texture&&(this._texture.needsUpdate=!0),this._lastRenderedProgress=t}toCssColor(t){return typeof t=="string"?t:`#${(t instanceof Me?t:new Me(t)).getHexString()}`}getResolution(){try{let t=this._cameraRef?.renderer?.domElement;if(t)return{width:t.clientWidth||1,height:t.clientHeight||1}}catch{}return{width:this._cameraRef?.screenResolution?.x??1,height:this._cameraRef?.screenResolution?.y??1}}iconSetup(t){this._sprite||this.createSprite(),this._cameraRef=t.camera,this.options.stickToViewport&&this._cameraRef&&(this._cameraRef.camera.add(this.group),this.updateStickyTransform())}iconUpdate(t){let o=Re(this.options.cooldown)?.progress??1;(Math.abs(o-this._lastRenderedProgress)>.02||o===1&&this._lastRenderedProgress!==1)&&this.redraw(o),this.options.stickToViewport&&this._cameraRef&&this.updateStickyTransform()}resolveScreenPosition(t,e){let o=this.options.screenAnchor??"top-left",n=Bt(this.options.screenPosition,It),s=n.x,a=n.y,{fx:r,fy:l}=Ci[o],c=r*t,O=l*e,u=e/De;return{px:c+s*u,py:O+a*u}}resolveIconSize(t){let e=this.options.iconSize??"md",o,n;typeof e=="string"?o=n=_i[e]:typeof e=="number"?o=n=e:(o=e.width,n=e.height);let s=t/De;return{widthPx:o*s,heightPx:n*s}}computeWorldExtents(t,e){let o=1,n=1;if(t.isPerspectiveCamera){let s=t,a=Math.tan(s.fov*Math.PI/180/2)*e;o=a*s.aspect,n=a}else if(t.isOrthographicCamera){let s=t;o=(s.right-s.left)/2,n=(s.top-s.bottom)/2}return{worldHalfW:o,worldHalfH:n}}updateStickyTransform(){if(!this._sprite||!this._cameraRef)return;let t=this._cameraRef.camera,{width:e,height:o}=this.getResolution(),{px:n,py:s}=this.resolveScreenPosition(e,o),a=Math.max(.001,this.options.zDistance??1),{worldHalfW:r,worldHalfH:l}=this.computeWorldExtents(t,a),c=n/e*2-1,O=1-s/o*2,u=c*r,d=O*l;{let f=l*2/o,{widthPx:y,heightPx:v}=this.resolveIconSize(o),g=Math.max(1e-4,y*f),h=Math.max(1e-4,v*f);this._sprite.scale.set(g,h,1)}this.group?.position.set(u,d,-a)}iconDestroy(){this._texture?.dispose(),this._sprite?.material&&this._sprite.material.dispose(),this._sprite&&this._sprite.removeFromParent(),this.group?.removeFromParent(),this._iconTexture?.dispose(),this._sprite=null,this._texture=null,this._canvas=null,this._ctx=null,this._cameraRef=null,this._iconTexture=null,this._iconImage=null}};function Ie(...i){let t=i.filter(o=>!(o instanceof Dt)),e={...Zt};for(let o of t)e={...e,...o};return x(new Mt(e),o=>Ie(o??{}))}function Ei(i,t,e){e({me:i,globals:t})}function Zi(i,t){let e=t??Rt();Ei(i,e,i.nodeDestroy.bind(i))}export{Q as a,J as b,tt as c,et as d,it as e,ot as f,kt as g,nt as h,Vt as i,Nt as j,st as k,Wt as l,$t as m,B as n,Kt as o,Jt as p,lt as q,te as r,re as s,F as t,ae as u,pe as v,G as w,ce as x,me as y,ht as z,ue as A,ye as B,mt as C,fe as D,xe as E,ut as F,be as G,Pe as H,dt as I,we as J,Se as K,yt as L,ei as M,_e as N,ft as O,bi as P,Ie as Q,Zi as R};
|
package/dist/chunk-COM6HJ2L.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as u}from"./chunk-VS2D4B3W.js";import{DirectionalLight as b,PerspectiveCamera as f,RenderTarget as T,Scene as E,Color as v,LinearFilter as g}from"three";var w=128,h=class{cache=new Map;inFlight=new Map;renderer=null;size;constructor(e=w){this.size=e}setRenderer(e){this.renderer=e}get(e){return this.cache.get(e)??null}invalidate(e){this.cache.delete(e),this.inFlight.delete(e)}clear(){this.cache.clear(),this.inFlight.clear()}async ensure(e,i){let t=this.cache.get(e);if(t)return t;let r=this.inFlight.get(e);if(r)return r;if(!i||!this.renderer)return null;let s=this.render(e,i).then(n=>(this.inFlight.delete(e),n?(this.cache.set(e,n),n):null)).catch(n=>(this.inFlight.delete(e),console.warn("EntityThumbnailCache: failed to render thumbnail",e,n),null));return this.inFlight.set(e,s),s}async render(e,i){let t=this.renderer;if(!t)return null;let r=new E;r.background=new v(3815994);let s=new b(16777215,2);s.position.set(5,10,7),r.add(s);let n=i.clone(!0);n.position.set(0,0,0),n.rotation.set(0,0,0),n.updateMatrixWorld(!0),r.add(n);let a=new f(50,1,.1,100),l=u(n,a),o=new T(this.size,this.size,{minFilter:g,magFilter:g}),m=t.getRenderTarget(),p=t.getScissorTest();try{t.setScissorTest(!1),t.setRenderTarget(o),t.render(r,a)}finally{t.setRenderTarget(m),t.setScissorTest(p)}let y=await t.readRenderTargetPixelsAsync(o,0,0,this.size,this.size);o.dispose(),r.remove(n);let d=R(y,this.size,this.size);return d?{uuid:e,dataUrl:d,bounds:{width:l.width,height:l.height,depth:l.depth}}:null}},D=new h;function R(c,e,i){if(typeof document>"u")return null;let t=document.createElement("canvas");t.width=e,t.height=i;let r=t.getContext("2d");if(!r)return null;let s=c instanceof Uint8Array?c:new Uint8Array(c.buffer,c.byteOffset,c.byteLength),n=r.createImageData(e,i);for(let a=0;a<i;a+=1){let l=(i-1-a)*e*4,o=a*e*4;n.data.set(s.subarray(l,l+e*4),o)}return r.putImageData(n,0,0),t.toDataURL("image/png")}export{h as a,D as b};
|
package/dist/chunk-E3UBSUPX.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as s,d as r,h as n}from"./chunk-7WRQ2UAN.js";import{StageBodyKind as l}from"@zylem/behaviors/core";var f=new Map,u=0;function c(e){let i=f.get(e);return i===void 0&&(i=u++%16,f.set(e,i)),i}function p(e){let i=0;return e.forEach(o=>{let t=c(o);i|=1<<t}),i}function d(e,i){if(!e)return 4294967295;let o=c(e),t=i?p(i):65535;return(1<<o&65535)<<16|t&65535}var a=class{static=!1;sensor=!1;build(i){let o=this.bodyDesc({isDynamicBody:!this.static}),t=this.collider(i);return this.sensor&&(t.sensor=!0),i.collisionType&&(t.collisionGroups=d(i.collisionType,i.collisionFilter)),[o,t]}withCollision(i){return this.sensor=i?.sensor??this.sensor,this.static=i?.static??this.static,this}collider(i){let o=n(i.size,r),t=n(i.position,s);return{shape:{type:"box",halfExtents:[o.x/2,o.y/2,o.z/2]},offset:[t.x,t.y,t.z]}}bodyDesc({isDynamicBody:i=!0}){return{kind:i?l.Dynamic:l.Static,position:[0,0,0],gravityScale:1,canSleep:!1,ccdEnabled:!0}}};export{d as a,a as b};
|