@hology/core 0.0.90 → 0.0.92
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/LICENSE.md +14 -14
- package/README.md +2 -2
- package/dist/config/project-config.d.ts +1 -0
- package/dist/config/project-config.d.ts.map +1 -0
- package/dist/config/project-config.js +1 -2
- package/dist/controllers/base-game-controller.d.ts +1 -0
- package/dist/controllers/base-game-controller.d.ts.map +1 -0
- package/dist/controllers/base-game-controller.js +1 -2
- package/dist/csm.d.ts +1 -0
- package/dist/csm.d.ts.map +1 -0
- package/dist/csm.js +1 -2
- package/dist/effects/particles/examples.d.ts +1 -0
- package/dist/effects/particles/examples.d.ts.map +1 -0
- package/dist/effects/particles/examples.js +1 -2
- package/dist/effects/particles/particle-system-config.d.ts +1 -0
- package/dist/effects/particles/particle-system-config.d.ts.map +1 -0
- package/dist/effects/particles/particle-system-config.js +1 -2
- package/dist/effects/vfx/behaviours.d.ts +3 -1
- package/dist/effects/vfx/behaviours.d.ts.map +1 -0
- package/dist/effects/vfx/behaviours.js +1 -2
- package/dist/effects/vfx/index.d.ts +1 -0
- package/dist/effects/vfx/index.d.ts.map +1 -0
- package/dist/effects/vfx/index.js +1 -2
- package/dist/effects/vfx/initializsers.d.ts +20 -39
- package/dist/effects/vfx/initializsers.d.ts.map +1 -0
- package/dist/effects/vfx/initializsers.js +1 -2
- package/dist/effects/vfx/rates.d.ts +5 -4
- package/dist/effects/vfx/rates.d.ts.map +1 -0
- package/dist/effects/vfx/rates.js +1 -2
- package/dist/effects/vfx/stretched-sprite.d.ts +1 -0
- package/dist/effects/vfx/stretched-sprite.d.ts.map +1 -0
- package/dist/effects/vfx/stretched-sprite.js +1 -2
- package/dist/effects/vfx/trail-renderer.d.ts +1 -0
- package/dist/effects/vfx/trail-renderer.d.ts.map +1 -0
- package/dist/effects/vfx/trail-renderer.js +1 -2
- package/dist/effects/vfx/vfx-actor.d.ts +2 -1
- package/dist/effects/vfx/vfx-actor.d.ts.map +1 -0
- package/dist/effects/vfx/vfx-actor.js +1 -2
- package/dist/effects/vfx/vfx-asset.d.ts +11 -0
- package/dist/effects/vfx/vfx-asset.d.ts.map +1 -0
- package/dist/effects/vfx/vfx-asset.js +1 -2
- package/dist/effects/vfx/vfx-defs.d.ts +11 -7
- package/dist/effects/vfx/vfx-defs.d.ts.map +1 -0
- package/dist/effects/vfx/vfx-defs.js +1 -2
- package/dist/effects/vfx/vfx-materializer.d.ts +9 -1
- package/dist/effects/vfx/vfx-materializer.d.ts.map +1 -0
- package/dist/effects/vfx/vfx-materializer.js +1 -2
- package/dist/effects/vfx/vfx-old-materializer.d.ts +2 -11
- package/dist/effects/vfx/vfx-old-materializer.d.ts.map +1 -0
- package/dist/effects/vfx/vfx-old-materializer.js +1 -2
- package/dist/effects/vfx/vfx-param.d.ts +1 -0
- package/dist/effects/vfx/vfx-param.d.ts.map +1 -0
- package/dist/effects/vfx/vfx-param.js +1 -2
- package/dist/effects/vfx/vfx-renderers.d.ts +2 -1
- package/dist/effects/vfx/vfx-renderers.d.ts.map +1 -0
- package/dist/effects/vfx/vfx-renderers.js +1 -2
- package/dist/effects/vfx/vfx-service.d.ts +1 -0
- package/dist/effects/vfx/vfx-service.d.ts.map +1 -0
- package/dist/effects/vfx/vfx-service.js +1 -2
- package/dist/effects/vfx/zones.d.ts +2 -1
- package/dist/effects/vfx/zones.d.ts.map +1 -0
- package/dist/effects/vfx/zones.js +1 -2
- package/dist/game-component/component-decorators.d.ts +1 -0
- package/dist/game-component/component-decorators.d.ts.map +1 -0
- package/dist/game-component/component-decorators.js +1 -2
- package/dist/game-component/game-component.d.ts +1 -0
- package/dist/game-component/game-component.d.ts.map +1 -0
- package/dist/game-component/game-component.js +1 -2
- package/dist/gameplay/actors/actor.d.ts +1 -0
- package/dist/gameplay/actors/actor.d.ts.map +1 -0
- package/dist/gameplay/actors/actor.js +1 -2
- package/dist/gameplay/actors/builtin/camera-actor.d.ts +1 -0
- package/dist/gameplay/actors/builtin/camera-actor.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/camera-actor.js +1 -2
- package/dist/gameplay/actors/builtin/components/character/character-animation.d.ts +1 -0
- package/dist/gameplay/actors/builtin/components/character/character-animation.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/components/character/character-animation.js +1 -2
- package/dist/gameplay/actors/builtin/components/character/character-movement copy.d.ts +1 -0
- package/dist/gameplay/actors/builtin/components/character/character-movement copy.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/components/character/character-movement copy.js +1 -2
- package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts +1 -0
- package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/components/character/character-movement.js +1 -2
- package/dist/gameplay/actors/builtin/components/character/modes.d.ts +1 -0
- package/dist/gameplay/actors/builtin/components/character/modes.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/components/character/modes.js +1 -2
- package/dist/gameplay/actors/builtin/components/mesh-component.d.ts +1 -0
- package/dist/gameplay/actors/builtin/components/mesh-component.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/components/mesh-component.js +1 -2
- package/dist/gameplay/actors/builtin/components/scene-component.d.ts +1 -0
- package/dist/gameplay/actors/builtin/components/scene-component.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/components/scene-component.js +1 -2
- package/dist/gameplay/actors/builtin/index.d.ts +1 -0
- package/dist/gameplay/actors/builtin/index.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/index.js +1 -2
- package/dist/gameplay/actors/builtin/navmesh-actor.d.ts +1 -0
- package/dist/gameplay/actors/builtin/navmesh-actor.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/navmesh-actor.js +1 -2
- package/dist/gameplay/actors/builtin/positional-audio-actor.d.ts +1 -0
- package/dist/gameplay/actors/builtin/positional-audio-actor.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/positional-audio-actor.js +1 -2
- package/dist/gameplay/actors/builtin/spawn-point.d.ts +1 -0
- package/dist/gameplay/actors/builtin/spawn-point.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/spawn-point.js +1 -2
- package/dist/gameplay/actors/builtin/trigger-volume.d.ts +1 -0
- package/dist/gameplay/actors/builtin/trigger-volume.d.ts.map +1 -0
- package/dist/gameplay/actors/builtin/trigger-volume.js +1 -2
- package/dist/gameplay/actors/camera/camera-component.d.ts +1 -0
- package/dist/gameplay/actors/camera/camera-component.d.ts.map +1 -0
- package/dist/gameplay/actors/camera/camera-component.js +1 -2
- package/dist/gameplay/actors/camera/third-person-camera-component.d.ts +1 -0
- package/dist/gameplay/actors/camera/third-person-camera-component.d.ts.map +1 -0
- package/dist/gameplay/actors/camera/third-person-camera-component.js +1 -2
- package/dist/gameplay/actors/component.d.ts +1 -0
- package/dist/gameplay/actors/component.d.ts.map +1 -0
- package/dist/gameplay/actors/component.js +1 -2
- package/dist/gameplay/actors/factory.d.ts +1 -0
- package/dist/gameplay/actors/factory.d.ts.map +1 -0
- package/dist/gameplay/actors/factory.js +1 -2
- package/dist/gameplay/actors/index.d.ts +1 -0
- package/dist/gameplay/actors/index.d.ts.map +1 -0
- package/dist/gameplay/actors/index.js +1 -2
- package/dist/gameplay/actors/internal/component-init.d.ts +1 -0
- package/dist/gameplay/actors/internal/component-init.d.ts.map +1 -0
- package/dist/gameplay/actors/internal/component-init.js +1 -2
- package/dist/gameplay/actors/internal/container-map.d.ts +1 -0
- package/dist/gameplay/actors/internal/container-map.d.ts.map +1 -0
- package/dist/gameplay/actors/internal/container-map.js +1 -2
- package/dist/gameplay/ai/behavior-tree/bt.d.ts +1 -0
- package/dist/gameplay/ai/behavior-tree/bt.d.ts.map +1 -0
- package/dist/gameplay/ai/behavior-tree/bt.js +1 -2
- package/dist/gameplay/ai/behavior-tree/move.d.ts +1 -0
- package/dist/gameplay/ai/behavior-tree/move.d.ts.map +1 -0
- package/dist/gameplay/ai/behavior-tree/move.js +1 -2
- package/dist/gameplay/ai/build-tile.d.ts +1 -0
- package/dist/gameplay/ai/build-tile.d.ts.map +1 -0
- package/dist/gameplay/ai/build-tile.js +1 -2
- package/dist/gameplay/ai/dynamic-tiled-navmesh.d.ts +1 -0
- package/dist/gameplay/ai/dynamic-tiled-navmesh.d.ts.map +1 -0
- package/dist/gameplay/ai/dynamic-tiled-navmesh.js +1 -2
- package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.d.ts +1 -0
- package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.d.ts.map +1 -0
- package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.js +1 -2
- package/dist/gameplay/ai/index.d.ts +1 -0
- package/dist/gameplay/ai/index.d.ts.map +1 -0
- package/dist/gameplay/ai/index.js +1 -2
- package/dist/gameplay/ai/navigation.d.ts +1 -0
- package/dist/gameplay/ai/navigation.d.ts.map +1 -0
- package/dist/gameplay/ai/navigation.js +1 -2
- package/dist/gameplay/animation/anim-sm.d.ts +1 -0
- package/dist/gameplay/animation/anim-sm.d.ts.map +1 -0
- package/dist/gameplay/animation/anim-sm.js +1 -2
- package/dist/gameplay/animation/root-motion.d.ts +1 -0
- package/dist/gameplay/animation/root-motion.d.ts.map +1 -0
- package/dist/gameplay/animation/root-motion.js +1 -2
- package/dist/gameplay/env.d.ts +1 -0
- package/dist/gameplay/env.d.ts.map +1 -0
- package/dist/gameplay/env.js +1 -2
- package/dist/gameplay/index.d.ts +1 -0
- package/dist/gameplay/index.d.ts.map +1 -0
- package/dist/gameplay/index.js +1 -2
- package/dist/gameplay/initiate.d.ts +1 -0
- package/dist/gameplay/initiate.d.ts.map +1 -0
- package/dist/gameplay/initiate.js +1 -2
- package/dist/gameplay/inject.d.ts +1 -0
- package/dist/gameplay/inject.d.ts.map +1 -0
- package/dist/gameplay/inject.js +1 -2
- package/dist/gameplay/input/index.d.ts +1 -0
- package/dist/gameplay/input/index.d.ts.map +1 -0
- package/dist/gameplay/input/index.js +1 -2
- package/dist/gameplay/input/input-service.d.ts +1 -0
- package/dist/gameplay/input/input-service.d.ts.map +1 -0
- package/dist/gameplay/input/input-service.js +1 -2
- package/dist/gameplay/input/input.d.ts +1 -0
- package/dist/gameplay/input/input.d.ts.map +1 -0
- package/dist/gameplay/input/input.js +1 -2
- package/dist/gameplay/input/keybind.d.ts +1 -0
- package/dist/gameplay/input/keybind.d.ts.map +1 -0
- package/dist/gameplay/input/keybind.js +1 -2
- package/dist/gameplay/polyfill.d.ts +1 -0
- package/dist/gameplay/polyfill.d.ts.map +1 -0
- package/dist/gameplay/polyfill.js +1 -2
- package/dist/gameplay/services/asset-loader.d.ts +1 -0
- package/dist/gameplay/services/asset-loader.d.ts.map +1 -0
- package/dist/gameplay/services/asset-loader.js +1 -2
- package/dist/gameplay/services/physics/abstract-physics-system.d.ts +202 -0
- package/dist/gameplay/services/physics/abstract-physics-system.d.ts.map +1 -0
- package/dist/gameplay/services/physics/abstract-physics-system.js +4 -0
- package/dist/gameplay/services/physics/collision-contact.d.ts +1 -0
- package/dist/gameplay/services/physics/collision-contact.d.ts.map +1 -0
- package/dist/gameplay/services/physics/collision-contact.js +1 -2
- package/dist/gameplay/services/physics/physics-system.d.ts +283 -24
- package/dist/gameplay/services/physics/physics-system.d.ts.map +1 -0
- package/dist/gameplay/services/physics/physics-system.js +1 -2
- package/dist/gameplay/services/pointer-events.d.ts +1 -0
- package/dist/gameplay/services/pointer-events.d.ts.map +1 -0
- package/dist/gameplay/services/pointer-events.js +1 -2
- package/dist/gameplay/services/render.d.ts +1 -0
- package/dist/gameplay/services/render.d.ts.map +1 -0
- package/dist/gameplay/services/render.js +1 -2
- package/dist/gameplay/services/world.d.ts +1 -0
- package/dist/gameplay/services/world.d.ts.map +1 -0
- package/dist/gameplay/services/world.js +1 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -2
- package/dist/rendering/shader-override.d.ts +1 -0
- package/dist/rendering/shader-override.d.ts.map +1 -0
- package/dist/rendering/shader-override.js +1 -2
- package/dist/rendering.d.ts +1 -0
- package/dist/rendering.d.ts.map +1 -0
- package/dist/rendering.js +1 -2
- package/dist/scene/asset-resource-loader.d.ts +1 -0
- package/dist/scene/asset-resource-loader.d.ts.map +1 -0
- package/dist/scene/asset-resource-loader.js +1 -2
- package/dist/scene/assets-provider.d.ts +1 -0
- package/dist/scene/assets-provider.d.ts.map +1 -0
- package/dist/scene/assets-provider.js +1 -2
- package/dist/scene/bootstrap.d.ts +1 -0
- package/dist/scene/bootstrap.d.ts.map +1 -0
- package/dist/scene/bootstrap.js +1 -2
- package/dist/scene/collision/collision-shape-import.d.ts +1 -0
- package/dist/scene/collision/collision-shape-import.d.ts.map +1 -0
- package/dist/scene/collision/collision-shape-import.js +1 -2
- package/dist/scene/collision/collision-shape.d.ts +1 -0
- package/dist/scene/collision/collision-shape.d.ts.map +1 -0
- package/dist/scene/collision/collision-shape.js +1 -2
- package/dist/scene/landscape/landscape-manager.d.ts +1 -0
- package/dist/scene/landscape/landscape-manager.d.ts.map +1 -0
- package/dist/scene/landscape/landscape-manager.js +1 -2
- package/dist/scene/landscape/landscape.d.ts +1 -0
- package/dist/scene/landscape/landscape.d.ts.map +1 -0
- package/dist/scene/landscape/landscape.js +1 -2
- package/dist/scene/landscape/utils.d.ts +1 -0
- package/dist/scene/landscape/utils.d.ts.map +1 -0
- package/dist/scene/landscape/utils.js +1 -2
- package/dist/scene/materializer.d.ts +1 -0
- package/dist/scene/materializer.d.ts.map +1 -0
- package/dist/scene/materializer.js +1 -2
- package/dist/scene/materials/grass-foliage.d.ts +1 -0
- package/dist/scene/materials/grass-foliage.d.ts.map +1 -0
- package/dist/scene/materials/grass-foliage.js +1 -2
- package/dist/scene/materials/grass.d.ts +1 -0
- package/dist/scene/materials/grass.d.ts.map +1 -0
- package/dist/scene/materials/grass.js +1 -2
- package/dist/scene/materials/utils/material-painting.d.ts +1 -0
- package/dist/scene/materials/utils/material-painting.d.ts.map +1 -0
- package/dist/scene/materials/utils/material-painting.js +1 -2
- package/dist/scene/materials/utils/noise.glsl.d.ts +1 -0
- package/dist/scene/materials/utils/noise.glsl.d.ts.map +1 -0
- package/dist/scene/materials/utils/noise.glsl.js +1 -2
- package/dist/scene/materials/water.d.ts +1 -0
- package/dist/scene/materials/water.d.ts.map +1 -0
- package/dist/scene/materials/water.js +1 -2
- package/dist/scene/model.d.ts +1 -0
- package/dist/scene/model.d.ts.map +1 -0
- package/dist/scene/model.js +1 -2
- package/dist/scene/objects/ramp-geometry.d.ts +1 -0
- package/dist/scene/objects/ramp-geometry.d.ts.map +1 -0
- package/dist/scene/objects/ramp-geometry.js +1 -2
- package/dist/scene/objects/shapes.d.ts +2 -2
- package/dist/scene/objects/shapes.d.ts.map +1 -0
- package/dist/scene/objects/shapes.js +1 -2
- package/dist/scene/objects/stairs-geometry.d.ts +1 -0
- package/dist/scene/objects/stairs-geometry.d.ts.map +1 -0
- package/dist/scene/objects/stairs-geometry.js +1 -2
- package/dist/scene/runtime-asset-service.d.ts +1 -0
- package/dist/scene/runtime-asset-service.d.ts.map +1 -0
- package/dist/scene/runtime-asset-service.js +1 -2
- package/dist/scene/runtime-backend-service.d.ts +1 -0
- package/dist/scene/runtime-backend-service.d.ts.map +1 -0
- package/dist/scene/runtime-backend-service.js +1 -2
- package/dist/scene/runtime-bundled-backend-service.d.ts +1 -0
- package/dist/scene/runtime-bundled-backend-service.d.ts.map +1 -0
- package/dist/scene/runtime-bundled-backend-service.js +1 -2
- package/dist/scene/scene-data-service.d.ts +1 -0
- package/dist/scene/scene-data-service.d.ts.map +1 -0
- package/dist/scene/scene-data-service.js +1 -2
- package/dist/scene/sky.d.ts +1 -0
- package/dist/scene/sky.d.ts.map +1 -0
- package/dist/scene/sky.js +1 -2
- package/dist/scene/storage/storage.d.ts +1 -0
- package/dist/scene/storage/storage.d.ts.map +1 -0
- package/dist/scene/storage/storage.js +1 -2
- package/dist/shader/builtin/index.d.ts +1 -0
- package/dist/shader/builtin/index.d.ts.map +1 -0
- package/dist/shader/builtin/index.js +1 -2
- package/dist/shader/builtin/lambert-shader.d.ts +1 -0
- package/dist/shader/builtin/lambert-shader.d.ts.map +1 -0
- package/dist/shader/builtin/lambert-shader.js +1 -2
- package/dist/shader/builtin/landscape-composite-shader.d.ts +1 -0
- package/dist/shader/builtin/landscape-composite-shader.d.ts.map +1 -0
- package/dist/shader/builtin/landscape-composite-shader.js +1 -2
- package/dist/shader/builtin/landscape-shader.d.ts +1 -0
- package/dist/shader/builtin/landscape-shader.d.ts.map +1 -0
- package/dist/shader/builtin/landscape-shader.js +1 -2
- package/dist/shader/builtin/standard-shader.d.ts +1 -0
- package/dist/shader/builtin/standard-shader.d.ts.map +1 -0
- package/dist/shader/builtin/standard-shader.js +1 -2
- package/dist/shader/builtin/unlit-shader.d.ts +1 -0
- package/dist/shader/builtin/unlit-shader.d.ts.map +1 -0
- package/dist/shader/builtin/unlit-shader.js +1 -2
- package/dist/shader/index.d.ts +1 -0
- package/dist/shader/index.d.ts.map +1 -0
- package/dist/shader/index.js +1 -2
- package/dist/shader/parameter.d.ts +1 -0
- package/dist/shader/parameter.d.ts.map +1 -0
- package/dist/shader/parameter.js +1 -2
- package/dist/shader/shader.d.ts +1 -0
- package/dist/shader/shader.d.ts.map +1 -0
- package/dist/shader/shader.js +1 -2
- package/dist/shader-nodes/bulge.d.ts +1 -0
- package/dist/shader-nodes/bulge.d.ts.map +1 -0
- package/dist/shader-nodes/bulge.js +1 -2
- package/dist/shader-nodes/depth.d.ts +1 -0
- package/dist/shader-nodes/depth.d.ts.map +1 -0
- package/dist/shader-nodes/depth.js +1 -2
- package/dist/shader-nodes/effects.d.ts +1 -0
- package/dist/shader-nodes/effects.d.ts.map +1 -0
- package/dist/shader-nodes/effects.js +1 -2
- package/dist/shader-nodes/glsl-node.d.ts +2 -1
- package/dist/shader-nodes/glsl-node.d.ts.map +1 -0
- package/dist/shader-nodes/glsl-node.js +1 -2
- package/dist/shader-nodes/index.d.ts +2 -0
- package/dist/shader-nodes/index.d.ts.map +1 -0
- package/dist/shader-nodes/index.js +1 -2
- package/dist/shader-nodes/landscape.d.ts +1 -0
- package/dist/shader-nodes/landscape.d.ts.map +1 -0
- package/dist/shader-nodes/landscape.js +1 -2
- package/dist/shader-nodes/layers.d.ts +1 -0
- package/dist/shader-nodes/layers.d.ts.map +1 -0
- package/dist/shader-nodes/layers.js +1 -2
- package/dist/shader-nodes/math.d.ts +1 -0
- package/dist/shader-nodes/math.d.ts.map +1 -0
- package/dist/shader-nodes/math.js +1 -2
- package/dist/shader-nodes/particle.d.ts +3 -0
- package/dist/shader-nodes/particle.d.ts.map +1 -0
- package/dist/shader-nodes/particle.js +1 -2
- package/dist/shader-nodes/shapes.d.ts +1 -0
- package/dist/shader-nodes/shapes.d.ts.map +1 -0
- package/dist/shader-nodes/shapes.js +1 -2
- package/dist/shader-nodes/texture-sequence.d.ts +2 -1
- package/dist/shader-nodes/texture-sequence.d.ts.map +1 -0
- package/dist/shader-nodes/texture-sequence.js +1 -2
- package/dist/shader-nodes/time.d.ts +1 -0
- package/dist/shader-nodes/time.d.ts.map +1 -0
- package/dist/shader-nodes/time.js +1 -2
- package/dist/shader-nodes/voronoi.d.ts +1 -0
- package/dist/shader-nodes/voronoi.d.ts.map +1 -0
- package/dist/shader-nodes/voronoi.js +1 -2
- package/dist/test/injection.test.d.ts +1 -0
- package/dist/test/injection.test.d.ts.map +1 -0
- package/dist/test/injection.test.js +1 -2
- package/dist/utils/async.d.ts +1 -0
- package/dist/utils/async.d.ts.map +1 -0
- package/dist/utils/async.js +1 -2
- package/dist/utils/buffer.d.ts +1 -0
- package/dist/utils/buffer.d.ts.map +1 -0
- package/dist/utils/buffer.js +1 -2
- package/dist/utils/collections.d.ts +1 -0
- package/dist/utils/collections.d.ts.map +1 -0
- package/dist/utils/collections.js +1 -2
- package/dist/utils/files.d.ts +1 -0
- package/dist/utils/files.d.ts.map +1 -0
- package/dist/utils/files.js +1 -2
- package/dist/utils/materials.d.ts +1 -0
- package/dist/utils/materials.d.ts.map +1 -0
- package/dist/utils/materials.js +1 -2
- package/dist/utils/math.d.ts +1 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +1 -2
- package/dist/utils/mesh.d.ts +1 -0
- package/dist/utils/mesh.d.ts.map +1 -0
- package/dist/utils/mesh.js +1 -2
- package/dist/utils/polyfill.d.ts +1 -0
- package/dist/utils/polyfill.d.ts.map +1 -0
- package/dist/utils/polyfill.js +1 -2
- package/dist/utils/three/depth-pass.d.ts +1 -0
- package/dist/utils/three/depth-pass.d.ts.map +1 -0
- package/dist/utils/three/depth-pass.js +1 -2
- package/dist/utils/three/gpu-stats-panel.d.ts +1 -0
- package/dist/utils/three/gpu-stats-panel.d.ts.map +1 -0
- package/dist/utils/three/gpu-stats-panel.js +1 -2
- package/dist/utils/three/line-sphere.d.ts +1 -0
- package/dist/utils/three/line-sphere.d.ts.map +1 -0
- package/dist/utils/three/line-sphere.js +1 -2
- package/dist/utils/three/outline-pass.d.ts +1 -0
- package/dist/utils/three/outline-pass.d.ts.map +1 -0
- package/dist/utils/three/outline-pass.js +1 -2
- package/dist/utils/three/positional-audio-helper.d.ts +1 -0
- package/dist/utils/three/positional-audio-helper.d.ts.map +1 -0
- package/dist/utils/three/positional-audio-helper.js +1 -2
- package/dist/utils/three/stats.d.ts +1 -0
- package/dist/utils/three/stats.d.ts.map +1 -0
- package/dist/utils/three/stats.js +1 -2
- package/dist/utils/three/transform-controls.d.ts +1 -0
- package/dist/utils/three/transform-controls.d.ts.map +1 -0
- package/dist/utils/three/transform-controls.js +1 -2
- package/dist/utils/three/traverse.d.ts +1 -0
- package/dist/utils/three/traverse.d.ts.map +1 -0
- package/dist/utils/three/traverse.js +1 -2
- package/dist/utils/type.d.ts +1 -0
- package/dist/utils/type.d.ts.map +1 -0
- package/dist/utils/type.js +1 -2
- package/dist/utils/uuid.d.ts +1 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +1 -2
- package/dist/worker/index.d.ts +1 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +1 -2
- package/package.json +122 -122
- package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dynamic-tiled-navmesh.d.ts","sourceRoot":"","sources":["../../../src/gameplay/ai/dynamic-tiled-navmesh.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAGP,YAAY,EAEZ,YAAY,EAGf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAI9B,MAAM,MAAM,wBAAwB,GAAG;IACnC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAA;IACzB,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACnC,QAAQ,EAAE,MAAM,CAAA;IAEhB,OAAO,EAAE,MAAM,CAAA;IAEf,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qBAAa,mBAAmB;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,SAAI;IAClB,eAAe,2DAAiE;IAEhF,aAAa,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;IACrD,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAA;IAC/B,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAA;IAC/B,aAAa,EAAE,KAAK,CAAC,OAAO,CAAA;IAE5B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IAEX,YAAY,EAAE,YAAY,CAAA;IAE1B,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAA;IAC5B,gBAAgB,SAAI;IAEpB,OAAO,CAAC,OAAO,CAAQ;gBAEX,KAAK,EAAE,wBAAwB;IAmD3C,OAAO,CAAC,QAAQ;IA+BhB,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAE,OAAc;IAuE7H,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW;IAU3D,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO;IAOpD,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI;IAepC,OAAO;CAOV"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import{NavMesh as t,NavMeshParams as s,Raw as e,UnsignedCharArray as i,recastConfigDefaults as o,statusToReadableString as n}from"recast-navigation";import{buildConfig as r,buildTile as a}from"./build-tile.js";import{Subject as h}from"rxjs";import{hasWorkerBuilder as l,createWorker as d}from"../../worker/index.js";import{hasSharedArrayBufferSupport as u}from"../../utils/buffer.js";export class DynamicTiledNavMesh{constructor(e){this.navMeshVersion=0,this.onNavMeshUpdate=new h,this.workerRoundRobin=0;const i=e.navMeshBounds.min,n=e.navMeshBounds.max,a=[i.toArray(),n.toArray()],u=e.navMeshBounds.min;this.navMeshBoundsMin=i,this.navMeshBoundsMax=n,this.navMeshBounds=a,this.navMeshOrigin=u,this.cacheId=e.cacheId;const c={...o,...e.recastConfig};this.recastConfig=c;const M=new t,{tileWidth:f,tileHeight:v,tcs:m,maxPolysPerTile:g}=r({recastConfig:c,navMeshBounds:a});this.tileWidth=f,this.tileHeight=v,this.tcs=m;const w=s.create({orig:u,tileWidth:c.tileSize*c.cs,tileHeight:c.tileSize*c.ch,maxTiles:e.maxTiles,maxPolys:g});if(M.initTiled(w),this.navMesh=M,this.workers=[],l())for(let t=0;t<e.workers;t++){const t=d();t.onmessage=t=>{this.onResult(t)},this.workers.push(t)}}onResult(t){const{tileX:s,tileY:o,navMeshData:r}=t.data,a=new i;a.copy(r),this.navMesh.removeTile(this.navMesh.getTileRefAt(s,o,0));const h=this.navMesh.addTile(a,e.Module.DT_TILE_FREE_DATA,0);e.Detour.statusFailed(h.status)&&(console.error(e.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${s}, ty: ${o},status: ${n(h.status)} (${h.status})`),a.destroy()),this.navMeshVersion++,this.onNavMeshUpdate.next([this.navMeshVersion,[s,o]])}buildTile(t,s,[e,i],o=!0){const n=u&&t.buffer instanceof window.SharedArrayBuffer,r=n?t:new Float32Array(t),h=n?s:new Uint32Array(s),l={tileX:e,tileY:i,tileBoundsMin:[this.navMeshBoundsMin.x+e*this.tcs,this.navMeshBoundsMin.y,this.navMeshBoundsMin.z+i*this.tcs],tileBoundsMax:[this.navMeshBoundsMax.x+(e+1)*this.tcs,this.navMeshBoundsMax.y,this.navMeshBoundsMax.z+(i+1)*this.tcs],recastConfig:this.recastConfig,navMeshBounds:this.navMeshBounds,keepIntermediates:!1,positions:r,indices:h};if(this.workers.length>0){this.workerRoundRobin=++this.workerRoundRobin%this.workers.length;return this.workers[this.workerRoundRobin].postMessage(l,n?void 0:[r.buffer,h.buffer]),Promise.resolve()}return new Promise((t=>{requestIdleCallback((()=>{const s=this.cacheId+JSON.stringify({tileX:l.tileX,tileY:l.tileY});if(o){const e=localStorage.getItem(s);if(null!=e){const s=M(e);return this.onResult({data:{tileX:l.tileX,tileY:l.tileY,navMeshData:s}}),void t({})}}else localStorage.removeItem(s);const e=a(l);if(!e.success||!e.data)return;const i=e.data.toTypedArray();localStorage.setItem(s,c(i)),this.onResult({data:{tileX:l.tileX,tileY:l.tileY,navMeshData:i}}),t(e)}))}))}buildAllTiles(t,s){const{tileWidth:e,tileHeight:i}=this;for(let o=0;o<i;o++)for(let i=0;i<e;i++)this.buildTile(t,s,[i,o])}getTileForWorldPosition(t){return[Math.floor((t.x-this.navMeshBoundsMin.x)/this.tcs),Math.floor((t.z-this.navMeshBoundsMin.z)/this.tcs)]}getTilesForBounds(t){const s=this.getTileForWorldPosition(t.min),e=this.getTileForWorldPosition(t.max),i=[];for(let t=s[1];t<=e[1];t++)for(let o=s[0];o<=e[0];o++)i.push([o,t]);return i}destroy(){this.navMesh.destroy();for(const t of this.workers)t.terminate()}}const c=function(t){return btoa(String.fromCharCode(...t))},M=function(t){if(!t)return null;const s=atob(t),e=s.length,i=new Uint8Array(e);for(let t=0;t<e;t++)i[t]=s.charCodeAt(t);return i}
|
2
|
-
/*
|
1
|
+
import{NavMesh as t,NavMeshParams as s,Raw as e,UnsignedCharArray as i,recastConfigDefaults as o,statusToReadableString as n}from"recast-navigation";import{buildConfig as r,buildTile as a}from"./build-tile.js";import{Subject as h}from"rxjs";import{hasWorkerBuilder as l,createWorker as d}from"../../worker/index.js";import{hasSharedArrayBufferSupport as u}from"../../utils/buffer.js";export class DynamicTiledNavMesh{constructor(e){this.navMeshVersion=0,this.onNavMeshUpdate=new h,this.workerRoundRobin=0;const i=e.navMeshBounds.min,n=e.navMeshBounds.max,a=[i.toArray(),n.toArray()],u=e.navMeshBounds.min;this.navMeshBoundsMin=i,this.navMeshBoundsMax=n,this.navMeshBounds=a,this.navMeshOrigin=u,this.cacheId=e.cacheId;const c={...o,...e.recastConfig};this.recastConfig=c;const M=new t,{tileWidth:f,tileHeight:v,tcs:m,maxPolysPerTile:g}=r({recastConfig:c,navMeshBounds:a});this.tileWidth=f,this.tileHeight=v,this.tcs=m;const w=s.create({orig:u,tileWidth:c.tileSize*c.cs,tileHeight:c.tileSize*c.ch,maxTiles:e.maxTiles,maxPolys:g});if(M.initTiled(w),this.navMesh=M,this.workers=[],l())for(let t=0;t<e.workers;t++){const t=d();t.onmessage=t=>{this.onResult(t)},this.workers.push(t)}}onResult(t){const{tileX:s,tileY:o,navMeshData:r}=t.data,a=new i;a.copy(r),this.navMesh.removeTile(this.navMesh.getTileRefAt(s,o,0));const h=this.navMesh.addTile(a,e.Module.DT_TILE_FREE_DATA,0);e.Detour.statusFailed(h.status)&&(console.error(e.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${s}, ty: ${o},status: ${n(h.status)} (${h.status})`),a.destroy()),this.navMeshVersion++,this.onNavMeshUpdate.next([this.navMeshVersion,[s,o]])}buildTile(t,s,[e,i],o=!0){const n=u&&t.buffer instanceof window.SharedArrayBuffer,r=n?t:new Float32Array(t),h=n?s:new Uint32Array(s),l={tileX:e,tileY:i,tileBoundsMin:[this.navMeshBoundsMin.x+e*this.tcs,this.navMeshBoundsMin.y,this.navMeshBoundsMin.z+i*this.tcs],tileBoundsMax:[this.navMeshBoundsMax.x+(e+1)*this.tcs,this.navMeshBoundsMax.y,this.navMeshBoundsMax.z+(i+1)*this.tcs],recastConfig:this.recastConfig,navMeshBounds:this.navMeshBounds,keepIntermediates:!1,positions:r,indices:h};if(this.workers.length>0){this.workerRoundRobin=++this.workerRoundRobin%this.workers.length;return this.workers[this.workerRoundRobin].postMessage(l,n?void 0:[r.buffer,h.buffer]),Promise.resolve()}return new Promise((t=>{requestIdleCallback((()=>{const s=this.cacheId+JSON.stringify({tileX:l.tileX,tileY:l.tileY});if(o){const e=localStorage.getItem(s);if(null!=e){const s=M(e);return this.onResult({data:{tileX:l.tileX,tileY:l.tileY,navMeshData:s}}),void t({})}}else localStorage.removeItem(s);const e=a(l);if(!e.success||!e.data)return;const i=e.data.toTypedArray();localStorage.setItem(s,c(i)),this.onResult({data:{tileX:l.tileX,tileY:l.tileY,navMeshData:i}}),t(e)}))}))}buildAllTiles(t,s){const{tileWidth:e,tileHeight:i}=this;for(let o=0;o<i;o++)for(let i=0;i<e;i++)this.buildTile(t,s,[i,o])}getTileForWorldPosition(t){return[Math.floor((t.x-this.navMeshBoundsMin.x)/this.tcs),Math.floor((t.z-this.navMeshBoundsMin.z)/this.tcs)]}getTilesForBounds(t){const s=this.getTileForWorldPosition(t.min),e=this.getTileForWorldPosition(t.max),i=[];for(let t=s[1];t<=e[1];t++)for(let o=s[0];o<=e[0];o++)i.push([o,t]);return i}destroy(){this.navMesh.destroy();for(const t of this.workers)t.terminate()}}const c=function(t){return btoa(String.fromCharCode(...t))},M=function(t){if(!t)return null;const s=atob(t),e=s.length,i=new Uint8Array(e);for(let t=0;t<e;t++)i[t]=s.charCodeAt(t);return i};/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dynamic-tiled-navmesh.worker.d.ts","sourceRoot":"","sources":["../../../src/gameplay/ai/dynamic-tiled-navmesh.worker.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB,SAiBjC"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import{init as t}from"recast-navigation";import{buildTile as e}from"./build-tile.js";let s=!1;const a=[];export function setupNavMeshWorker(){t().then((()=>{s=!0;for(const t of a)o(t)})),self.onmessage=t=>{s?o(t.data):a.push(t.data)}}const o=t=>{const s=e(t);if(!s.success||!s.data)return;const a=s.data.toTypedArray();s.data.destroy(),self.postMessage({tileX:t.tileX,tileY:t.tileY,navMeshData:a},[a.buffer])}
|
2
|
-
/*
|
1
|
+
import{init as t}from"recast-navigation";import{buildTile as e}from"./build-tile.js";let s=!1;const a=[];export function setupNavMeshWorker(){t().then((()=>{s=!0;for(const t of a)o(t)})),self.onmessage=t=>{s?o(t.data):a.push(t.data)}}const o=t=>{const s=e(t);if(!s.success||!s.data)return;const a=s.data.toTypedArray();s.data.destroy(),self.postMessage({tileX:t.tileX,tileY:t.tileY,navMeshData:a},[a.buffer])};/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gameplay/ai/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
export*from"./navigation.js";export*from"./behavior-tree/bt.js";export*from"./behavior-tree/move.js"
|
2
|
-
/*
|
1
|
+
export*from"./navigation.js";export*from"./behavior-tree/bt.js";export*from"./behavior-tree/move.js";/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/gameplay/ai/navigation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,qBACa,UAAU;IACrB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAgB;;IAwB7B,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAC;IAoB3E;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAC,IAAI;CAYlD"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import{__decorate as t,__metadata as e}from"tslib";import{NavMeshQuery as s}from"recast-navigation";import{Vector3 as n}from"three";import{inject as r,Service as o,World as i}from"../";import h,{safeRecastInit as u}from"../actors/builtin/navmesh-actor";let a=class{constructor(){this.world=r(i),u().then((()=>{const t=this.world.actors.find((t=>t instanceof h));null!=t&&(this.navMeshActor=t,this.query=null),this.world.actorAdded.subscribe((t=>{t instanceof h&&(this.navMeshActor=t,this.query=null)})),this.world.actorRemoved.subscribe((t=>{t instanceof h&&t.id===this.navMeshActor?.id&&(this.navMeshActor=null,this.query=null)}))}))}ensureQuery(){null==this.query&&null!=this.navMeshActor&&null!=this.navMeshActor.navMesh&&(this.query=new s(this.navMeshActor.navMesh))}findPath(t,e){if(this.ensureQuery(),null==this.query)return d("NavMesh has not been generated yet"),l;const s=this.findClosestPoint(t);if(null==s)return d("Start point could not be found on NavMesh",t),l;const{success:r,error:o,path:i}=this.query.computePath(s,e);return r?{success:!0,path:i.map((t=>new n(t.x,t.y,t.z)))}:(d("Failed to generate path",o),l)}findClosestPoint(t){if(this.ensureQuery(),null==this.query)return d("NavMesh has not been generated yet"),null;const{success:e,point:s}=this.query.findClosestPoint(t);return e?new n(s.x,s.y,s.z):null}};a=t([o(),e("design:paramtypes",[])],a);export{a as Navigation};const l={success:!1,path:[]};let c=new Set;function d(t,...e){c.has(t)||(c.add(t),setTimeout((()=>c.delete(t)),2e3),console.warn(t,...e))}
|
2
|
-
/*
|
1
|
+
import{__decorate as t,__metadata as e}from"tslib";import{NavMeshQuery as s}from"recast-navigation";import{Vector3 as n}from"three";import{inject as r,Service as o,World as i}from"../";import h,{safeRecastInit as u}from"../actors/builtin/navmesh-actor";let a=class{constructor(){this.world=r(i),u().then((()=>{const t=this.world.actors.find((t=>t instanceof h));null!=t&&(this.navMeshActor=t,this.query=null),this.world.actorAdded.subscribe((t=>{t instanceof h&&(this.navMeshActor=t,this.query=null)})),this.world.actorRemoved.subscribe((t=>{t instanceof h&&t.id===this.navMeshActor?.id&&(this.navMeshActor=null,this.query=null)}))}))}ensureQuery(){null==this.query&&null!=this.navMeshActor&&null!=this.navMeshActor.navMesh&&(this.query=new s(this.navMeshActor.navMesh))}findPath(t,e){if(this.ensureQuery(),null==this.query)return d("NavMesh has not been generated yet"),l;const s=this.findClosestPoint(t);if(null==s)return d("Start point could not be found on NavMesh",t),l;const{success:r,error:o,path:i}=this.query.computePath(s,e);return r?{success:!0,path:i.map((t=>new n(t.x,t.y,t.z)))}:(d("Failed to generate path",o),l)}findClosestPoint(t){if(this.ensureQuery(),null==this.query)return d("NavMesh has not been generated yet"),null;const{success:e,point:s}=this.query.findClosestPoint(t);return e?new n(s.x,s.y,s.z):null}};a=t([o(),e("design:paramtypes",[])],a);export{a as Navigation};const l={success:!1,path:[]};let c=new Set;function d(t,...e){c.has(t)||(c.add(t),setTimeout((()=>c.delete(t)),2e3),console.warn(t,...e))}/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"anim-sm.d.ts","sourceRoot":"","sources":["../../../src/gameplay/animation/anim-sm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,KAAK,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAA;AAI3D,cAAM,UAAU;aACc,KAAK,EAAE,cAAc;aAAkB,SAAS,EAAE,mBAAmB;gBAArE,KAAK,EAAE,cAAc,EAAkB,SAAS,EAAE,mBAAmB;CAClG;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,uDAAuD;IACvD,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAMD,qBAAa,cAAc;aAiBG,IAAI,CAAC,EAAE,aAAa;IAAS,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAhBhG,SAAgB,IAAI,SAAU;IACvB,MAAM,EAAE,cAAc,CAAA;IAC7B,SAAgB,WAAW,EAAE,UAAU,EAAE,CAAK;IACvC,IAAI,EAAE,MAAM,CAAA;IAOnB;;;;;OAKG;gBACyB,IAAI,CAAC,EAAE,aAAa,EAAS,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAgC;IAI/H,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB,YAAY,IAAI,cAAc,EAAE;IAMhC,OAAO,IAAI,cAAc;IAMzB,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB;IAO/D,KAAK,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,GAAE,aAAoB,EAAE,SAAS,GAAE,aAAoB;IAOnG,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,GAAE,mBAAgC;IAIhF,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,mBAAmB;IAO5E,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,mBAAmB;CAIzE;AAED,qBAAa,qBAAqB;IAIpB,OAAO,CAAC,YAAY;IAHzB,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,SAAI;gBAEI,YAAY,EAAE,cAAc;IAIhD,IAAI,CAAC,SAAS,EAAE,MAAM;IAMtB,OAAO,CAAC,QAAQ;CAgCjB"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
let t=0;class i{constructor(t,i){this.state=t,this.predicate=i}}const s={loop:!0};export class AnimationState{constructor(i,n=s){this.clip=i,this.options=n,this.uuid=t++,this.transitions=[],this.options={...s,...n}}named(t){return this.name=t,this}getAncestors(){return null!=this.parent?[this,...this.parent.getAncestors()]:[this]}getRoot(){return null!=this.parent?this.parent.getRoot():this}createChild(t,i){const s=new AnimationState(t);return s.parent=this,this.transitionsTo(s,i),s}split(t,i=null,s=null){return[this.createChild(i,t),this.createChild(s,e(t))]}transitionsTo(t,s=(
|
2
|
-
/*
|
1
|
+
let t=0;class i{constructor(t,i){this.state=t,this.predicate=i}}const s={loop:!0};export class AnimationState{constructor(i,n=s){this.clip=i,this.options=n,this.uuid=t++,this.transitions=[],this.options={...s,...n}}named(t){return this.name=t,this}getAncestors(){return null!=this.parent?[this,...this.parent.getAncestors()]:[this]}getRoot(){return null!=this.parent?this.parent.getRoot():this}createChild(t,i){const s=new AnimationState(t);return s.parent=this,this.transitionsTo(s,i),s}split(t,i=null,s=null){return[this.createChild(i,t),this.createChild(s,e(t))]}transitionsTo(t,s=()=>!0){this.transitions.push(new i(t,s))}transitionsOnComplete(t,i){this.transitionsTo(t,(t=>!!i&&i(t)||t>=this.clip.duration-.5))}transitionsBetween(t,i){this.transitionsTo(t,i),t.transitionsTo(this,e(i))}}export class AnimationStateMachine{constructor(t){this.initialState=t,this.timer=0,this.current=t}step(t){return this.timer+=t,this._getNext()}_getNext(t=1){const i=n(this.current.getRoot(),this.timer,this.current);return i.uuid!==this.current.uuid&&(this.timer=0,this.current=i),--t>0?this._getNext(t):this.current}}function n(t,i,s){for(const e of t.transitions)if(e.predicate(i))return n(e.state,e.state.uuid===s.uuid?i:0,s);return null==t.clip?t.getAncestors().find((t=>null!=t.clip))??t:t}const e=t=>i=>!t(i);/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"root-motion.d.ts","sourceRoot":"","sources":["../../../src/gameplay/animation/root-motion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,IAAI,EAA4B,MAAM,OAAO,CAAA;AAiBzF,qBAAa,cAAe,SAAQ,aAAa;IACzC,WAAW,EAAE,mBAAmB,CAAA;IAGhC,YAAY,EAAE,MAAM,CAAI;IACxB,YAAY,UAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,MAAM,CAAe;WAEf,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,UAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,cAAc;IAqBpG;;;;;;;;OAQG;WACW,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM;IAS1E,KAAK,IAAI,IAAI;CAMd;AAGD,KAAK,WAAW,GAAG,MAAM,CAAA;AAEzB,qBAAa,SAAS;IACpB,IAAI,EAAE,WAAW,CAAU;IAC3B,KAAK,EAAE,MAAM,CAAI;IACjB,QAAQ,EAAE,IAAI,EAAE,CAAK;CACtB"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import{AnimationClip as o,Vector3 as t}from"three";export class RootMotionClip extends o{constructor(){super(...arguments),this.displacement=0,this.fixedInPlace=!1}static fromClip(o,e=!1,i){const n=new RootMotionClip(o.name,o.duration,o.tracks.slice(),o.blendMode);if(n.fixedInPlace=e,n.rootBone=i,n.source=o,n.uuid=o.uuid,n.motionTrack=null!=i?o.tracks.find((o=>o.name===`${i.name}.position`)):o.tracks.find((o=>o.name.endsWith(".position"))),n.motionTrack){n.tracks.splice(n.tracks.indexOf(n.motionTrack),1);const o=(new t).fromArray(n.motionTrack.values,0),e=(new t).fromArray(n.motionTrack.values,n.motionTrack.values.length-3);n.displacement=e.distanceTo(o)}else console.error("Could not find root motion track",o,i);return n}static fromClipWithDistance(o,t){const e=new RootMotionClip(o.name,o.duration,o.tracks.slice(),o.blendMode);return e.fixedInPlace=!0,e.source=o,e.uuid=o.uuid,e.displacement=t,e}clone(){const o=RootMotionClip.fromClip(this.source.clone(),this.fixedInPlace,this.rootBone);return o.displacement=this.displacement,o}}let e=53912381;export class BoneLayer{constructor(){this.uuid=e++,this.order=0,this.boneMask=[]}}
|
2
|
-
/*
|
1
|
+
import{AnimationClip as o,Vector3 as t}from"three";export class RootMotionClip extends o{constructor(){super(...arguments),this.displacement=0,this.fixedInPlace=!1}static fromClip(o,e=!1,i){const n=new RootMotionClip(o.name,o.duration,o.tracks.slice(),o.blendMode);if(n.fixedInPlace=e,n.rootBone=i,n.source=o,n.uuid=o.uuid,n.motionTrack=null!=i?o.tracks.find((o=>o.name===`${i.name}.position`)):o.tracks.find((o=>o.name.endsWith(".position"))),n.motionTrack){n.tracks.splice(n.tracks.indexOf(n.motionTrack),1);const o=(new t).fromArray(n.motionTrack.values,0),e=(new t).fromArray(n.motionTrack.values,n.motionTrack.values.length-3);n.displacement=e.distanceTo(o)}else console.error("Could not find root motion track",o,i);return n}static fromClipWithDistance(o,t){const e=new RootMotionClip(o.name,o.duration,o.tracks.slice(),o.blendMode);return e.fixedInPlace=!0,e.source=o,e.uuid=o.uuid,e.displacement=t,e}clone(){const o=RootMotionClip.fromClip(this.source.clone(),this.fixedInPlace,this.rootBone);return o.displacement=this.displacement,o}}let e=53912381;export class BoneLayer{constructor(){this.uuid=e++,this.order=0,this.boneMask=[]}}/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
package/dist/gameplay/env.d.ts
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/gameplay/env.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAA;CAClB"}
|
package/dist/gameplay/env.js
CHANGED
package/dist/gameplay/index.d.ts
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gameplay/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAG,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACzG,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sCAAsC,CAAA;AAEpD,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
|
package/dist/gameplay/index.js
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
import"reflect-metadata";export{Container as DIContainer}from"typedi";export*from"./initiate.js";export*from"./inject.js";export{Service,Inject}from"typedi";export{ActorFactory}from"./actors/factory.js";export{Actor,BaseActor}from"./actors/actor.js";export{Component,ActorComponent,attach,Attach}from"./actors/component.js";export*from"./services/world.js";export*from"./services/render.js";export*from"./services/physics/physics-system.js";export*from"./animation/anim-sm.js";export*from"./animation/root-motion.js";export*from"./services/asset-loader.js";export*from"./services/pointer-events.js";export{VisualEffect}from"../effects/vfx/vfx-param.js";export*from"../shader/parameter.js";export*from"./ai/index.js";export*from"../effects/vfx"
|
2
|
-
/*
|
1
|
+
import"reflect-metadata";export{Container as DIContainer}from"typedi";export*from"./initiate.js";export*from"./inject.js";export{Service,Inject}from"typedi";export{ActorFactory}from"./actors/factory.js";export{Actor,BaseActor}from"./actors/actor.js";export{Component,ActorComponent,attach,Attach}from"./actors/component.js";export*from"./services/world.js";export*from"./services/render.js";export*from"./services/physics/physics-system.js";export*from"./animation/anim-sm.js";export*from"./animation/root-motion.js";export*from"./services/asset-loader.js";export*from"./services/pointer-events.js";export{VisualEffect}from"../effects/vfx/vfx-param.js";export*from"../shader/parameter.js";export*from"./ai/index.js";export*from"../effects/vfx";/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"initiate.d.ts","sourceRoot":"","sources":["../../src/gameplay/initiate.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAa3C,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAA;AAK1C,KAAK,SAAS,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;AAGpC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,WAAW,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAA;IACvC,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;IACrC,EAAE,CAAC,EAAE;QACH,OAAO,EAAE,OAAO,CAAA;KACjB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,UAAU,CAAC,EAAE,OAAO,CAAA;SACrB,CAAA;KACF,CAAC,CAAA;CACH,CAAA;AAED,wBAAgB,YAAY,CAAC,MAAM,EACjC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAC5B,MAAM,EAAE,kBAAkB,GACzB,aAAa,CAAC,MAAM,CAAC,CAsIvB;AAGD,8BAAsB,YAAY;IAChC,OAAO,IAAI,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,UAAU,IAAI,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC;CACjC;AAID,wBAAgB,iBAAiB,SAEhC;AAED;;;;;;GAMG;AAEH,0BAAkB,mBAAmB;IACnC,UAAU,IAAI;IACd,OAAO,IAAI;IACX,OAAO,KAAK;CACb;AAED,qBAAa,aAAa,CAAC,MAAM,GAAG,OAAO;IAYvC,OAAO,CAAC,iBAAiB;IAXpB,MAAM,EAAE,mBAAmB,CAAiC;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,UAAQ;IAClB,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,CAAsB;IAC9D,OAAO,CAAC,SAAS,CAA2B;IAC5C;;OAEG;IACH,SAAgB,KAAK,mBAA8D;gBAGzE,iBAAiB,EAAE,iBAAiB;IAE9C,QAAQ,IAAI,KAAK;IAIjB,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IAI/C;;OAEG;IACH,QAAQ;CAuBT"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import e from"typedi";import{loadScene as t}from"../scene/bootstrap.js";import{ActorFactory as n}from"./actors/factory.js";import{World as s}from"./services/world.js";import{ViewController as o}from"./services/render.js";import{RenderingView as r}from"../rendering.js";import{PhysicsSystem as i}from"./services/physics/physics-system.js";import{MeshComponent as a}from"./actors/builtin/components/mesh-component.js";import{activeContainerInstance as c}from"./actors/internal/container-map.js";import{InputService as m}from"./input/index.js";import{RuntimeAssetsService as d}from"../scene/runtime-asset-service.js";import{AssetResourceLoader as l}from"../scene/asset-resource-loader.js";import{AssetLoader as h}from"./services/asset-loader.js";import{polyfillClient as p}from"./polyfill.js";import{Subject as u}from"rxjs";import{PointerEvents as f}from"./services/pointer-events.js";import{RuntimeBundledBackendService as w}from"../scene/runtime-bundled-backend-service.js";import{Scene as g}from"three";export function initiateGame(m,u){if(p(),0!=u.element.childNodes.length)return console.error("Can not initialize the game with a non-empty html element"),null;e.has(o);const j=e.of("default"),v=new HologyRuntime(j),S=new n(j,{inEditor:!1});var y;e.set(n,S),y=u.element,Object.assign(y.style,{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"});const I=new r(u.element,{enableXR:!0===u.xr?.enabled,maxPixelRatio:u.rendering?.maxPixelRatio});I.renderer.shadowMap.enabled=u.rendering?.shadows?.enabled??!0,I.renderer.shadowMap.autoUpdate=u.rendering?.shadows?.autoUpdate??!0,null!=u?.rendering?.resolutionScale&&(I.resolutionScale=u.rendering.resolutionScale),e.set(r,I);const x=new o(I);e.set(o,x);const b=e.get(s);e.set(s,b);const D=new w,R=new d(D),G=new l;G.setDataDir(u.dataDir);const H=Object.entries(u.shaders).map((([e,t])=>({name:e,type:t}))),P=new h(G,R,H);return e.set(h,P),(async()=>{const n=e.get(i);if(await n.start(),v.isShutdown)return;if(await D.preloadData(),v.isShutdown)return;const s=new g;b.scene=s;const{scene:o,actors:r}=await t(I,u.sceneName,u.dataDir,u.shaders,u.actors,S,D,R,G);b.scene=o;for(const e of s.children)b.scene.add(e);if(v.isShutdown)return void I.stop();e.import([a]);for(const e of r)b.addActor(e);n.addFromScene(o),I.loop((e=>{})),v.status=5,c.value=j,j.remove(m),j.set({id:m,type:m});const d=j.get(m);c.value=null,v.gameInstance=d,j.get(f).start(),d instanceof GameInstance&&d.onStart(),v._resolver(!0)})(),v}export class GameInstance{onStart(){}onShutdown(){}}export function createHologyScene(){}export class HologyRuntime{constructor(e){this.containerInstance=e,this.status=0,this.isShutdown=!1,this.shutdownStarted=new u,this.ready=new Promise((e=>{this._resolver=e}))}getWorld(){return this.containerInstance.get(s)}getService(e){return this.containerInstance.get(e)}shutdown(){this.isShutdown=!0,this.shutdownStarted.next(),this.gameInstance instanceof GameInstance&&this.gameInstance.onShutdown(),this.containerInstance.get(m).stop();const e=this.containerInstance.get(r);e?.stop();for(const e of this.getWorld().actors)this.getWorld().removeActor(e);this.containerInstance.get(i).stop(),this.containerInstance.get(f).stop(),this.containerInstance.reset()}}
|
2
|
-
/*
|
1
|
+
import e from"typedi";import{loadScene as t}from"../scene/bootstrap.js";import{ActorFactory as n}from"./actors/factory.js";import{World as s}from"./services/world.js";import{ViewController as o}from"./services/render.js";import{RenderingView as r}from"../rendering.js";import{PhysicsSystem as i}from"./services/physics/physics-system.js";import{MeshComponent as a}from"./actors/builtin/components/mesh-component.js";import{activeContainerInstance as c}from"./actors/internal/container-map.js";import{InputService as m}from"./input/index.js";import{RuntimeAssetsService as d}from"../scene/runtime-asset-service.js";import{AssetResourceLoader as l}from"../scene/asset-resource-loader.js";import{AssetLoader as h}from"./services/asset-loader.js";import{polyfillClient as p}from"./polyfill.js";import{Subject as u}from"rxjs";import{PointerEvents as f}from"./services/pointer-events.js";import{RuntimeBundledBackendService as w}from"../scene/runtime-bundled-backend-service.js";import{Scene as g}from"three";export function initiateGame(m,u){if(p(),0!=u.element.childNodes.length)return console.error("Can not initialize the game with a non-empty html element"),null;e.has(o);const j=e.of("default"),v=new HologyRuntime(j),S=new n(j,{inEditor:!1});var y;e.set(n,S),y=u.element,Object.assign(y.style,{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"});const I=new r(u.element,{enableXR:!0===u.xr?.enabled,maxPixelRatio:u.rendering?.maxPixelRatio});I.renderer.shadowMap.enabled=u.rendering?.shadows?.enabled??!0,I.renderer.shadowMap.autoUpdate=u.rendering?.shadows?.autoUpdate??!0,null!=u?.rendering?.resolutionScale&&(I.resolutionScale=u.rendering.resolutionScale),e.set(r,I);const x=new o(I);e.set(o,x);const b=e.get(s);e.set(s,b);const D=new w,R=new d(D),G=new l;G.setDataDir(u.dataDir);const H=Object.entries(u.shaders).map((([e,t])=>({name:e,type:t}))),P=new h(G,R,H);return e.set(h,P),(async()=>{const n=e.get(i);if(await n.start(),v.isShutdown)return;if(await D.preloadData(),v.isShutdown)return;const s=new g;b.scene=s;const{scene:o,actors:r}=await t(I,u.sceneName,u.dataDir,u.shaders,u.actors,S,D,R,G);b.scene=o;for(const e of s.children)b.scene.add(e);if(v.isShutdown)return void I.stop();e.import([a]);for(const e of r)b.addActor(e);n.addFromScene(o),I.loop((e=>{})),v.status=5,c.value=j,j.remove(m),j.set({id:m,type:m});const d=j.get(m);c.value=null,v.gameInstance=d,j.get(f).start(),d instanceof GameInstance&&d.onStart(),v._resolver(!0)})(),v}export class GameInstance{onStart(){}onShutdown(){}}export function createHologyScene(){}export class HologyRuntime{constructor(e){this.containerInstance=e,this.status=0,this.isShutdown=!1,this.shutdownStarted=new u,this.ready=new Promise((e=>{this._resolver=e}))}getWorld(){return this.containerInstance.get(s)}getService(e){return this.containerInstance.get(e)}shutdown(){this.isShutdown=!0,this.shutdownStarted.next(),this.gameInstance instanceof GameInstance&&this.gameInstance.onShutdown(),this.containerInstance.get(m).stop();const e=this.containerInstance.get(r);e?.stop();for(const e of this.getWorld().actors)this.getWorld().removeActor(e);this.containerInstance.get(i).stop(),this.containerInstance.get(f).stop(),this.containerInstance.reset()}}/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -1,3 +1,4 @@
|
|
1
1
|
import { Constructable, ContainerInstance } from 'typedi';
|
2
2
|
export declare function inject<T>(type: Constructable<T>): T;
|
3
3
|
export declare function withInjectionContext(containerInstance: ContainerInstance, fn: (diContainer: ContainerInstance) => void): void;
|
4
|
+
//# sourceMappingURL=inject.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/gameplay/inject.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGrE,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAanD;AAED,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,QAKtH"}
|
package/dist/gameplay/inject.js
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
import t from"typedi";import{activeContainerInstance as e}from"./actors/internal/container-map.js";export function inject(n){return e.value?.get(n)??t.get(n)}export function withInjectionContext(t,n){const o=e.value;e.value=t,n(t),e.value=o}
|
2
|
-
/*
|
1
|
+
import t from"typedi";import{activeContainerInstance as e}from"./actors/internal/container-map.js";export function inject(n){return e.value?.get(n)??t.get(n)}export function withInjectionContext(t,n){const o=e.value;e.value=t,n(t),e.value=o}/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gameplay/input/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"input-service.d.ts","sourceRoot":"","sources":["../../../src/gameplay/input/input-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE7D,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,GAAC,MAAM,KAAK,IAAI,CAAA;AACrD,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAA;AAC3C,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,GAAG,CAAA;AAC9C,KAAK,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAA;AAEvC,qBACa,YAAY;IAErB,OAAO,CAAC,MAAM,CAA6C;IAC3D,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,UAAU,CAAyC;IAE3D,OAAO,CAAC,SAAS,CAchB;IAED,OAAO,CAAC,OAAO,CAcd;IAED,OAAO,CAAC,WAAW,CAkBlB;IAED,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,WAAW,CAsBlB;IAED,OAAO,CAAC,OAAO,CASd;IAGM,KAAK;IAWL,IAAI;IAUX;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa;IAIjD,UAAU,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc;IAIxD,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa;IAIzD,MAAM,CAAC,IAAI,EAAE,gBAAgB;IAM7B,UAAU,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO;IAO/C,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS;IAIrD,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS;IAIzD,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS;IAIrD,aAAa,CAAC,IAAI,EAAE,gBAAgB;IAIpC,eAAe,CAAC,IAAI,EAAE,gBAAgB;IAItC,eAAe,CAAC,IAAI,EAAE,gBAAgB;CAIhD"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import{__decorate as e}from"tslib";import{Service as t}from"typedi";let s=class{constructor(){this.inputs=new Map,this.deltaCallbacks=new Map,this.toggleCallbacks=new Map,this.keybinds=new Map,this.mousebinds=new Map,this.touchmoveBinds=new Map,this.wheelbinds=new Map,this.onKeyDown=e=>{this.keybinds.forEach(((t,s)=>{for(const n of t)n.test(e)&&(this.inputs.has(s)?this.inputs.get(s)(!0):this.toggleCallbacks.has(s)?this.toggleCallbacks.get(s)(!0):console.warn("No input callback for registered for key bind "+n.display()))}))},this.onKeyUp=e=>{this.keybinds.forEach(((t,s)=>{for(const n of t)n.test(e)&&(this.inputs.has(s)?this.inputs.get(s)(!1):this.toggleCallbacks.has(s)?this.toggleCallbacks.get(s)(!1):console.warn("No input callback for registered for key bind "+n.display()))}))},this.onMouseMove=e=>{(null!=document.pointerLockElement||null!=document.mozPointerLockElement)&&this.mousebinds.forEach(((t,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);if(null!=n)switch(t.axis){case"x":n(e.movementX*t.multiplier);break;case"y":n(e.movementY*t.multiplier)}else console.warn("No input callback for registered for mouse bind "+t.axis)}))},this.onTouchMove=e=>{const t=e.touches[0];null!=t&&(null!=this.prevTouchEvent&&t.identifier===this.prevTouchEvent.identifier?(this.touchmoveBinds.forEach(((e,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);if(null!=n)switch(e.axis){case"x":n((t.clientX-this.prevTouchEvent.clientX)*e.multiplier);break;case"y":n((t.clientY-this.prevTouchEvent.clientY)*e.multiplier)}else console.warn("No input callback for registered for mouse bind "+e.axis)})),this.prevTouchEvent=t):this.prevTouchEvent=e.touches[0])},this.onWheel=e=>{this.wheelbinds.forEach(((t,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);null!=n?n(e.deltaY*t.multiplier):console.warn("No input callback for registered for wheel bind")}))}}start(){document.addEventListener("keydown",this.onKeyDown),document.addEventListener("mousedown",this.onKeyDown),document.addEventListener("mouseup",this.onKeyUp),document.addEventListener("keyup",this.onKeyUp),document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("touchmove",this.onTouchMove),document.addEventListener("wheel",this.onWheel)}stop(){document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("mousedown",this.onKeyDown),document.removeEventListener("mouseup",this.onKeyUp),document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("mousemove",this.onMouseMove),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("wheel",this.onWheel)}bind(e,t){this.inputs.set(e,t)}bindToggle(e,t){this.toggleCallbacks.set(e,t)}bindDelta(e,t){this.deltaCallbacks.set(e,t)}unbind(e){this.inputs.delete(e),this.toggleCallbacks.delete(e),this.deltaCallbacks.delete(e)}setKeybind(e,t){this.keybinds.has(e)||this.keybinds.set(e,[]),this.keybinds.get(e).push(t)}setMousebind(e,t){this.mousebinds.set(e,t)}setTouchMoveBind(e,t){this.touchmoveBinds.set(e,t)}setWheelbind(e,t){this.wheelbinds.set(e,t)}removeKeybind(e){this.keybinds.delete(e)}removeMousebind(e){this.mousebinds.delete(e)}removeWheelbind(e){this.wheelbinds.delete(e)}};s=e([t()],s);export{s as InputService}
|
2
|
-
/*
|
1
|
+
import{__decorate as e}from"tslib";import{Service as t}from"typedi";let s=class{constructor(){this.inputs=new Map,this.deltaCallbacks=new Map,this.toggleCallbacks=new Map,this.keybinds=new Map,this.mousebinds=new Map,this.touchmoveBinds=new Map,this.wheelbinds=new Map,this.onKeyDown=e=>{this.keybinds.forEach(((t,s)=>{for(const n of t)n.test(e)&&(this.inputs.has(s)?this.inputs.get(s)(!0):this.toggleCallbacks.has(s)?this.toggleCallbacks.get(s)(!0):console.warn("No input callback for registered for key bind "+n.display()))}))},this.onKeyUp=e=>{this.keybinds.forEach(((t,s)=>{for(const n of t)n.test(e)&&(this.inputs.has(s)?this.inputs.get(s)(!1):this.toggleCallbacks.has(s)?this.toggleCallbacks.get(s)(!1):console.warn("No input callback for registered for key bind "+n.display()))}))},this.onMouseMove=e=>{(null!=document.pointerLockElement||null!=document.mozPointerLockElement)&&this.mousebinds.forEach(((t,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);if(null!=n)switch(t.axis){case"x":n(e.movementX*t.multiplier);break;case"y":n(e.movementY*t.multiplier)}else console.warn("No input callback for registered for mouse bind "+t.axis)}))},this.onTouchMove=e=>{const t=e.touches[0];null!=t&&(null!=this.prevTouchEvent&&t.identifier===this.prevTouchEvent.identifier?(this.touchmoveBinds.forEach(((e,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);if(null!=n)switch(e.axis){case"x":n((t.clientX-this.prevTouchEvent.clientX)*e.multiplier);break;case"y":n((t.clientY-this.prevTouchEvent.clientY)*e.multiplier)}else console.warn("No input callback for registered for mouse bind "+e.axis)})),this.prevTouchEvent=t):this.prevTouchEvent=e.touches[0])},this.onWheel=e=>{this.wheelbinds.forEach(((t,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);null!=n?n(e.deltaY*t.multiplier):console.warn("No input callback for registered for wheel bind")}))}}start(){document.addEventListener("keydown",this.onKeyDown),document.addEventListener("mousedown",this.onKeyDown),document.addEventListener("mouseup",this.onKeyUp),document.addEventListener("keyup",this.onKeyUp),document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("touchmove",this.onTouchMove),document.addEventListener("wheel",this.onWheel)}stop(){document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("mousedown",this.onKeyDown),document.removeEventListener("mouseup",this.onKeyUp),document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("mousemove",this.onMouseMove),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("wheel",this.onWheel)}bind(e,t){this.inputs.set(e,t)}bindToggle(e,t){this.toggleCallbacks.set(e,t)}bindDelta(e,t){this.deltaCallbacks.set(e,t)}unbind(e){this.inputs.delete(e),this.toggleCallbacks.delete(e),this.deltaCallbacks.delete(e)}setKeybind(e,t){this.keybinds.has(e)||this.keybinds.set(e,[]),this.keybinds.get(e).push(t)}setMousebind(e,t){this.mousebinds.set(e,t)}setTouchMoveBind(e,t){this.touchmoveBinds.set(e,t)}setWheelbind(e,t){this.wheelbinds.set(e,t)}removeKeybind(e){this.keybinds.delete(e)}removeMousebind(e){this.mousebinds.delete(e)}removeWheelbind(e){this.wheelbinds.delete(e)}};s=e([t()],s);export{s as InputService};/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/gameplay/input/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAMhD,qBAAa,SAAS;IAClB,QAAQ,CAAC,MAAM,UAAgB;IAC/B,IAAI,UAAU,WAEb;IACD,IAAI,QAAQ,WAEX;IACD,SAAgB,eAAe,WAAY,OAAO,UAEjD;IACD,SAAgB,eAAe,WAAY,OAAO,UAEjD;IACD,SAAgB,eAAe,WAAY,OAAO,UAEjD;IACD,SAAgB,eAAe,WAAY,OAAO,UAEjD;CACJ;AAGD,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAW1B,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAE5D,SAAS,UAAQ;IACjB,SAAgB,MAAM,WAAY,OAAO,UAOxC;IACM,OAAO,CAAC,EAAE,EAAE,QAAQ;IAGpB,KAAK,CAAC,EAAE,EAAE,QAAQ;CAG5B;AAGD,qBAAa,aAAa;IACtB,QAAQ,CAAC,QAAQ,QAAc;IAC/B,SAAgB,OAAO,UAAW,MAAM,UAEvC;IACD,SAAgB,OAAO,UAAW,MAAM,UAEvC;IACD,SAAgB,OAAO,UAAW,MAAM,UAEvC;CACJ;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IAGlD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPzB,QAAQ,CAAC,QAAQ,QAAc;gBAEV,IAAI,GAAE,MAAkB,EACxB,IAAI,GAAE,MAAiB,EACvB,IAAI,GAAE,MAAkB,EACxB,IAAI,GAAE,MAAiB,EACvB,IAAI,GAAE,MAAkB,EACxB,IAAI,GAAE,MAAiB;IAE5C,SAAgB,OAAO,UAAW,MAAM,UAEvC;IACD,SAAgB,OAAO,UAAW,MAAM,UAEvC;IACD,SAAgB,OAAO,UAAW,MAAM,UAEvC;CACJ;AAED,qBAAa,YAAY;IAEiB,OAAO,CAAC,GAAG,CAAC;IAAU,OAAO,CAAC,GAAG,CAAC;IADxE,KAAK,EAAE,MAAM,CAAA;gBACD,YAAY,GAAE,MAAU,EAAU,GAAG,CAAC,EAAE,MAAM,EAAU,GAAG,CAAC,EAAE,MAAM;IAGhF,SAAgB,SAAS,UAAW,MAAM,UAEzC;CACJ"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import{Euler as t,Vector2 as i}from"three";import{ArrayMap as s}from"../../utils/collections.js";import{clamp as o}from"../../utils/math.js";export class AxisInput{constructor(){this.vector=new i,this.togglePositiveY=t=>{this.vector.y=t?1:Math.min(this.vector.y,0)},this.toggleNegativeY=t=>{this.vector.y=t?-1:Math.max(this.vector.y,0)},this.togglePositiveX=t=>{this.vector.x=t?1:Math.min(this.vector.x,0)},this.toggleNegativeX=t=>{this.vector.x=t?-1:Math.max(this.vector.x,0)}}get horizontal(){return this.vector.x}get vertical(){return this.vector.y}}class h{constructor(){this.map=new s}emit(t){this.map.get(t).forEach((t=>t()))}add(t,i){this.map.push(t,i)}}export class ActionInput{constructor(){this.emitter=new h,this.activated=!1,this.toggle=t=>{t&&!this.activated?this.emitter.emit("start"):!t&&this.activated&&this.emitter.emit("end"),this.activated=t}}onStart(t){this.emitter.add("start",t)}onEnd(t){this.emitter.add("end",t)}}const e=2*Math.PI;export class RotationInput{constructor(){this.rotation=new t,this.rotateX=t=>{this.rotation.x=(this.rotation.x+t)%e},this.rotateY=t=>{this.rotation.y=(this.rotation.y+t)%e},this.rotateZ=t=>{this.rotation.z=(this.rotation.z+t)%e}}}export class RestrictedRotationInput extends RotationInput{constructor(i=-1/0,s=1/0,h=-1/0,e=1/0,r=-1/0,a=1/0){super(),this.minX=i,this.maxX=s,this.minY=h,this.maxY=e,this.minZ=r,this.maxZ=a,this.rotation=new t,this.rotateX=t=>{this.rotation.x=o(this.rotation.x+t,this.minX,this.maxX)},this.rotateY=t=>{this.rotation.y=o(this.rotation.y+t,this.minY,this.maxY)},this.rotateZ=t=>{this.rotation.z=o(this.rotation.z+t,this.minZ,this.maxZ)}}}export class DecimalInput{constructor(t=0,i,s){this.min=i,this.max=s,this.increment=t=>{this.value=o(this.value+t,this.min,this.max)},this.value=t}}
|
2
|
-
/*
|
1
|
+
import{Euler as t,Vector2 as i}from"three";import{ArrayMap as s}from"../../utils/collections.js";import{clamp as o}from"../../utils/math.js";export class AxisInput{constructor(){this.vector=new i,this.togglePositiveY=t=>{this.vector.y=t?1:Math.min(this.vector.y,0)},this.toggleNegativeY=t=>{this.vector.y=t?-1:Math.max(this.vector.y,0)},this.togglePositiveX=t=>{this.vector.x=t?1:Math.min(this.vector.x,0)},this.toggleNegativeX=t=>{this.vector.x=t?-1:Math.max(this.vector.x,0)}}get horizontal(){return this.vector.x}get vertical(){return this.vector.y}}class h{constructor(){this.map=new s}emit(t){this.map.get(t).forEach((t=>t()))}add(t,i){this.map.push(t,i)}}export class ActionInput{constructor(){this.emitter=new h,this.activated=!1,this.toggle=t=>{t&&!this.activated?this.emitter.emit("start"):!t&&this.activated&&this.emitter.emit("end"),this.activated=t}}onStart(t){this.emitter.add("start",t)}onEnd(t){this.emitter.add("end",t)}}const e=2*Math.PI;export class RotationInput{constructor(){this.rotation=new t,this.rotateX=t=>{this.rotation.x=(this.rotation.x+t)%e},this.rotateY=t=>{this.rotation.y=(this.rotation.y+t)%e},this.rotateZ=t=>{this.rotation.z=(this.rotation.z+t)%e}}}export class RestrictedRotationInput extends RotationInput{constructor(i=-1/0,s=1/0,h=-1/0,e=1/0,r=-1/0,a=1/0){super(),this.minX=i,this.maxX=s,this.minY=h,this.maxY=e,this.minZ=r,this.maxZ=a,this.rotation=new t,this.rotateX=t=>{this.rotation.x=o(this.rotation.x+t,this.minX,this.maxX)},this.rotateY=t=>{this.rotation.y=o(this.rotation.y+t,this.minY,this.maxY)},this.rotateZ=t=>{this.rotation.z=o(this.rotation.z+t,this.minZ,this.maxZ)}}}export class DecimalInput{constructor(t=0,i,s){this.min=i,this.max=s,this.increment=t=>{this.value=o(this.value+t,this.min,this.max)},this.value=t}}/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"keybind.d.ts","sourceRoot":"","sources":["../../../src/gameplay/input/keybind.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,WAAW,GAAC,aAAa,GAAC,YAAY,CAAA;AACnE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAC,OAAO,GAAC,QAAQ,GAAC,SAAS,GAAC,KAAK,GAAC,MAAM,GAAC,cAAc,GAAC,MAAM,CAAA;AAM7F,qBAAa,OAAO;IACG,GAAG,EAAE,SAAS;IAAS,KAAK,CAAC,EAAE,OAAO;IAAS,IAAI,CAAC,EAAE,OAAO;gBAA7D,GAAG,EAAE,SAAS,EAAS,KAAK,CAAC,EAAE,OAAO,EAAS,IAAI,CAAC,EAAE,OAAO;IAEzE,IAAI,CAAC,KAAK,EAAE,aAAa,GAAC,UAAU;IAWpC,OAAO;CAKf;AAGH,qBAAa,SAAS;IAEhB,QAAQ,CAAC,WAAW;IACpB,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAC,GAAG;gBAFb,WAAW,SAAI,EACf,OAAO,UAAQ,EACf,IAAI,GAAE,GAAG,GAAC,GAAS;IAG9B,IAAI,UAAU,WAGb;CACJ;AAGD,qBAAa,SAAS;IAElB,QAAQ,CAAC,WAAW;IACpB,QAAQ,CAAC,OAAO;gBADP,WAAW,SAAI,EACf,OAAO,UAAQ;IAG1B,IAAI,UAAU,WAEb;CACF"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
const t=navigator.platform.toUpperCase().indexOf("MAC")>=0?"⌘":"Ctrl",i=["MouseLeft","MouseMiddle","MouseRight"];export class Keybind{constructor(t,i,s){this.key=t,this.shift=i,this.ctrl=s}test(t){const s=!(null!=this.shift&&"Shift"!==this.key&&this.shift!==t.shiftKey||null!=this.ctrl&&"Control"!==this.key&&this.ctrl!=t.ctrlKey);return"key"in t?t.key.toLowerCase()===this.key.toLowerCase()&&s:i[t.button]===this.key&&s}display(){return(this.shift?"⇧ + ":"")+(this.ctrl?t+" + ":"")+this.key}}export class Mousebind{constructor(t=1,i=!1,s="x"){this.sensitivity=t,this.flipped=i,this.axis=s}get multiplier(){return(this.flipped?-1:1)*this.sensitivity}}export class Wheelbind{constructor(t=1,i=!1){this.sensitivity=t,this.flipped=i}get multiplier(){return(this.flipped?-1:1)*this.sensitivity}}
|
2
|
-
/*
|
1
|
+
const t=navigator.platform.toUpperCase().indexOf("MAC")>=0?"⌘":"Ctrl",i=["MouseLeft","MouseMiddle","MouseRight"];export class Keybind{constructor(t,i,s){this.key=t,this.shift=i,this.ctrl=s}test(t){const s=!(null!=this.shift&&"Shift"!==this.key&&this.shift!==t.shiftKey||null!=this.ctrl&&"Control"!==this.key&&this.ctrl!=t.ctrlKey);return"key"in t?t.key.toLowerCase()===this.key.toLowerCase()&&s:i[t.button]===this.key&&s}display(){return(this.shift?"⇧ + ":"")+(this.ctrl?t+" + ":"")+this.key}}export class Mousebind{constructor(t=1,i=!1,s="x"){this.sensitivity=t,this.flipped=i,this.axis=s}get multiplier(){return(this.flipped?-1:1)*this.sensitivity}}export class Wheelbind{constructor(t=1,i=!1){this.sensitivity=t,this.flipped=i}get multiplier(){return(this.flipped?-1:1)*this.sensitivity}}/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../../src/gameplay/polyfill.ts"],"names":[],"mappings":"AACA,wBAAgB,cAAc,SAqB7B"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
export function polyfillClient(){window.requestIdleCallback=window.requestIdleCallback||function(n){const e=Date.now();return setTimeout((function(){n({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})}),1)},window.cancelIdleCallback=window.cancelIdleCallback||function(n){clearTimeout(n)}}
|
2
|
-
/*
|
1
|
+
export function polyfillClient(){window.requestIdleCallback=window.requestIdleCallback||function(n){const e=Date.now();return setTimeout((function(){n({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})}),1)},window.cancelIdleCallback=window.cancelIdleCallback||function(n){clearTimeout(n)}}/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"asset-loader.d.ts","sourceRoot":"","sources":["../../../src/gameplay/services/asset-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAkB,MAAM,sCAAsC,CAAC;AACvG,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAa,IAAI,EAA+C,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAuC,QAAQ,EAA2C,MAAM,OAAO,CAAC;AAI/G,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,qBACa,WAAW;IAgBpB,SAAS,CAAC,mBAAmB,EAAE,mBAAmB;IAClD,SAAS,CAAC,YAAY,EAAE,cAAc;IAC/B,OAAO,EAAE,UAAU,EAAE;IAjB9B,SAAS,CAAC,OAAO,SAAK;IACtB,SAAS,CAAC,SAAS,SAAK;IAExB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,UAAU,CAAsC;IAExD,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,WAAW,CAAuC;gBAG9C,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,cAAc,EAC/B,OAAO,EAAE,UAAU,EAAE;IAG9B;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIxC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAKhD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQnD,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQpE;;OAEG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;IAgBtE;;OAEG;IACU,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUtD,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAQnD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAQ3D,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAQxD,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IASpD,QAAQ,CAAC,EAAE,EAAE,OAAO;CAKlC"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import{__decorate as e,__metadata as t}from"tslib";import{AssetResourceLoader as s}from"../../scene/asset-resource-loader.js";import{FBXLoader as r,GLTFLoader as a,MTLLoader as o,OBJLoader as i,TGALoader as n}from"three-stdlib";import{AudioLoader as d,LoadingManager as h,TextureLoader as l}from"three";import{pathJoin as u}from"../../utils/files.js";import{Service as c}from"typedi";import{materialFromAsset as g}from"../../scene/materializer.js";import{KTX2Loader as w}from"three/examples/jsm/Addons.js";let f=class{constructor(e,t,s){this.assetResourceLoader=e,this.assetService=t,this.shaders=s,this.baseUrl="",this.urlSuffix="",this.loadingManager=new h,this.glbLoader=new a(this.loadingManager),this.fbxLoader=new r(this.loadingManager),this.objLoader=new i(this.loadingManager),this.mtlLoader=new o(this.loadingManager),this.tgaLoader=new n(this.loadingManager),this.ktx2Loader=new w(this.loadingManager),this.textureLoader=new l(this.loadingManager),this.audioLoader=new d(this.loadingManager)}resolvePath(e){return u(this.baseUrl,e)+this.urlSuffix}getAudioAtPath(e){const t=this.resolvePath(e);return this.audioLoader.loadAsync(t)}async getAudioByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No audio could be found with asset id ${e}`);return this.assetResourceLoader.getAudio(t)}async getAudioByAssetName(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No audio could be found with asset name ${e}`);return this.assetResourceLoader.getAudio(t)}async getModelAtPath(e){const t=this.resolvePath(e);switch(e.split(".").pop().toLowerCase()){case"glb":case"gltf":return(await this.glbLoader.loadAsync(t)).scene;case"fbx":return this.fbxLoader.loadAsync(t);case"obj":return this.objLoader.loadAsync(t);default:throw new Error(`File suffix is not supperted in file ${e}`)}}async getGltfAtPath(e){const t=this.resolvePath(e);return this.glbLoader.loadAsync(t)}async getModelByAssetName(e){const t=(await this.assetService.getAssets()).find((t=>t.name===e));if(null==t)throw new Error(`No model could be found with asset name ${e}`);return this.assetResourceLoader.getMesh(t)}async getModelByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No model could be found with asset id ${e}`);return this.assetResourceLoader.getMesh(t)}async getTextureByAssetName(e){const t=(await this.assetService.getAssets()).find((t=>t.name===e));if(null==t)throw new Error(`No texture could be found with asset name ${e}`);return this.assetResourceLoader.getTexture(t)}async getTextureByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No texture could be found with asset id ${e}`);return this.assetResourceLoader.getTexture(t)}async getMaterialByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No material could be found with asset id ${e}`);return g(t,null,this.assetService,this.assetResourceLoader,this.shaders,!1)}async getAsset(e){return this.assetService.getAsset(e)}};f=e([c(),t("design:paramtypes",[s,Object,Array])],f);export{f as AssetLoader}
|
2
|
-
/*
|
1
|
+
import{__decorate as e,__metadata as t}from"tslib";import{AssetResourceLoader as s}from"../../scene/asset-resource-loader.js";import{FBXLoader as r,GLTFLoader as a,MTLLoader as o,OBJLoader as i,TGALoader as n}from"three-stdlib";import{AudioLoader as d,LoadingManager as h,TextureLoader as l}from"three";import{pathJoin as u}from"../../utils/files.js";import{Service as c}from"typedi";import{materialFromAsset as g}from"../../scene/materializer.js";import{KTX2Loader as w}from"three/examples/jsm/Addons.js";let f=class{constructor(e,t,s){this.assetResourceLoader=e,this.assetService=t,this.shaders=s,this.baseUrl="",this.urlSuffix="",this.loadingManager=new h,this.glbLoader=new a(this.loadingManager),this.fbxLoader=new r(this.loadingManager),this.objLoader=new i(this.loadingManager),this.mtlLoader=new o(this.loadingManager),this.tgaLoader=new n(this.loadingManager),this.ktx2Loader=new w(this.loadingManager),this.textureLoader=new l(this.loadingManager),this.audioLoader=new d(this.loadingManager)}resolvePath(e){return u(this.baseUrl,e)+this.urlSuffix}getAudioAtPath(e){const t=this.resolvePath(e);return this.audioLoader.loadAsync(t)}async getAudioByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No audio could be found with asset id ${e}`);return this.assetResourceLoader.getAudio(t)}async getAudioByAssetName(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No audio could be found with asset name ${e}`);return this.assetResourceLoader.getAudio(t)}async getModelAtPath(e){const t=this.resolvePath(e);switch(e.split(".").pop().toLowerCase()){case"glb":case"gltf":return(await this.glbLoader.loadAsync(t)).scene;case"fbx":return this.fbxLoader.loadAsync(t);case"obj":return this.objLoader.loadAsync(t);default:throw new Error(`File suffix is not supperted in file ${e}`)}}async getGltfAtPath(e){const t=this.resolvePath(e);return this.glbLoader.loadAsync(t)}async getModelByAssetName(e){const t=(await this.assetService.getAssets()).find((t=>t.name===e));if(null==t)throw new Error(`No model could be found with asset name ${e}`);return this.assetResourceLoader.getMesh(t)}async getModelByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No model could be found with asset id ${e}`);return this.assetResourceLoader.getMesh(t)}async getTextureByAssetName(e){const t=(await this.assetService.getAssets()).find((t=>t.name===e));if(null==t)throw new Error(`No texture could be found with asset name ${e}`);return this.assetResourceLoader.getTexture(t)}async getTextureByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No texture could be found with asset id ${e}`);return this.assetResourceLoader.getTexture(t)}async getMaterialByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No material could be found with asset id ${e}`);return g(t,null,this.assetService,this.assetResourceLoader,this.shaders,!1)}async getAsset(e){return this.assetService.getAsset(e)}};f=e([c(),t("design:paramtypes",[s,Object,Array])],f);export{f as AssetLoader};/*
|
3
2
|
* Copyright (©) 2023. All rights reserved.
|
4
3
|
* See the LICENSE.md file for details.
|
5
4
|
*/
|
@@ -0,0 +1,202 @@
|
|
1
|
+
import { Subject, Observable } from "rxjs";
|
2
|
+
import { Vector3, Object3D } from "three";
|
3
|
+
import { BaseActor } from "../../actors/actor";
|
4
|
+
import { AbstractType } from "../../../utils/type";
|
5
|
+
import { CollisionShape } from "../../../index.js";
|
6
|
+
import { PhysicsBodyType } from "./physics-system";
|
7
|
+
import * as RAPIER from "@dimforge/rapier3d-compat";
|
8
|
+
export type ActorPhysicsOptions = {
|
9
|
+
isTrigger: boolean;
|
10
|
+
mass: number;
|
11
|
+
friction: number;
|
12
|
+
continousCollisionDetection: boolean;
|
13
|
+
density: number;
|
14
|
+
restitution: number;
|
15
|
+
type: PhysicsBodyType;
|
16
|
+
ignoreForNavMesh: boolean;
|
17
|
+
};
|
18
|
+
/**
|
19
|
+
* Abstract base class defining the interface for physics systems.
|
20
|
+
* This allows for different physics engine implementations while maintaining
|
21
|
+
* a consistent interface for game logic.
|
22
|
+
*/
|
23
|
+
export declare abstract class AbstractPhysicsSystem {
|
24
|
+
/**
|
25
|
+
* Promise that resolves when the physics system is ready
|
26
|
+
*/
|
27
|
+
abstract readonly ready: Promise<void>;
|
28
|
+
/**
|
29
|
+
* Event emitted before physics step
|
30
|
+
*/
|
31
|
+
abstract readonly beforeStep: Subject<number>;
|
32
|
+
/**
|
33
|
+
* Event emitted after physics step
|
34
|
+
*/
|
35
|
+
abstract readonly afterStep: Subject<number>;
|
36
|
+
/**
|
37
|
+
* Controls debug visualization of physics bodies
|
38
|
+
*/
|
39
|
+
abstract get showDebug(): boolean;
|
40
|
+
abstract set showDebug(value: boolean);
|
41
|
+
/**
|
42
|
+
* Initializes and starts the physics system
|
43
|
+
*/
|
44
|
+
abstract start(): Promise<void>;
|
45
|
+
/**
|
46
|
+
* Renders debug visualization of physics bodies and colliders
|
47
|
+
*/
|
48
|
+
abstract renderDebug(): void;
|
49
|
+
/**
|
50
|
+
* Sets the gravity vector for the physics world
|
51
|
+
*/
|
52
|
+
abstract setGravity(x: number, y: number, z: number): void;
|
53
|
+
/**
|
54
|
+
* Gets the current gravity vector of the physics world
|
55
|
+
*/
|
56
|
+
abstract getGravity(): Vector3;
|
57
|
+
/**
|
58
|
+
* Adds static collision bodies to the physics world based on an existing scene hierarchy
|
59
|
+
*/
|
60
|
+
abstract addFromScene(object: Object3D): void;
|
61
|
+
/**
|
62
|
+
* Creates a character controller for physics-based character movement
|
63
|
+
*/
|
64
|
+
abstract getCharacterController(offset?: number): RAPIER.KinematicCharacterController;
|
65
|
+
/**
|
66
|
+
* Computes the corrected movement vector for an actor using a character controller
|
67
|
+
*/
|
68
|
+
abstract getActorComputedMovement(actor: BaseActor, cc: RAPIER.KinematicCharacterController, desiredTranslation: Vector3, collisionGroup?: number): Vector3;
|
69
|
+
/**
|
70
|
+
* Sets the next kinematic translation for an actor
|
71
|
+
*/
|
72
|
+
abstract setNextKinematicTranslation(actor: BaseActor, vel: Vector3): void;
|
73
|
+
/**
|
74
|
+
* Sets the angular velocity of an actor's physics body
|
75
|
+
*/
|
76
|
+
abstract setAngularVelocity(actor: BaseActor, velocity: Vector3): void;
|
77
|
+
/**
|
78
|
+
* Sets the linear velocity of an actor's physics body
|
79
|
+
*/
|
80
|
+
abstract setLinearVelocity(actor: BaseActor, velocity: Vector3): void;
|
81
|
+
/**
|
82
|
+
* Gets the current linear velocity of an actor's physics body
|
83
|
+
*/
|
84
|
+
abstract getLinearVelocity(actor: BaseActor, target?: Vector3): Vector3;
|
85
|
+
/**
|
86
|
+
* Gets the current angular velocity of an actor's physics body
|
87
|
+
*/
|
88
|
+
abstract getAngularVelocity(actor: BaseActor, target?: Vector3): Vector3;
|
89
|
+
/**
|
90
|
+
* Sets the linear damping factor for an actor's physics body
|
91
|
+
*/
|
92
|
+
abstract setLinearDamping(actor: BaseActor, factor: number): void;
|
93
|
+
/**
|
94
|
+
* Sets the angular damping factor for an actor's physics body
|
95
|
+
*/
|
96
|
+
abstract setAngularDamping(actor: BaseActor, factor: number): void;
|
97
|
+
/**
|
98
|
+
* Creates a new character collision object
|
99
|
+
*/
|
100
|
+
abstract createCharacterCollision(): RAPIER.CharacterCollision;
|
101
|
+
/**
|
102
|
+
* Adds an actor to the physics world with the specified collision shapes and options
|
103
|
+
*/
|
104
|
+
abstract addActor<A extends BaseActor>(actor: A, collisionShapes: CollisionShape[], options?: Partial<ActorPhysicsOptions>): void;
|
105
|
+
/**
|
106
|
+
* Applies a torque to an actor's physics body
|
107
|
+
*/
|
108
|
+
abstract applyTorque(actor: BaseActor, torque: Vector3): void;
|
109
|
+
/**
|
110
|
+
* Applies an instantaneous torque impulse to an actor's physics body
|
111
|
+
*/
|
112
|
+
abstract applyTorqueImpulse(actor: BaseActor, torqueImpulse: Vector3): void;
|
113
|
+
/**
|
114
|
+
* Resets all accumulated forces on an actor's physics body
|
115
|
+
*/
|
116
|
+
abstract resetForces(actor: BaseActor): void;
|
117
|
+
/**
|
118
|
+
* Resets all accumulated torques on an actor's physics body
|
119
|
+
*/
|
120
|
+
abstract resetTorques(actor: BaseActor): void;
|
121
|
+
/**
|
122
|
+
* Applies a continuous force to an actor's physics body
|
123
|
+
*/
|
124
|
+
abstract applyForce(actor: BaseActor, force: Vector3): void;
|
125
|
+
/**
|
126
|
+
* Applies an instantaneous force impulse to an actor's physics body
|
127
|
+
*/
|
128
|
+
abstract applyImpulse(actor: BaseActor, force: Vector3): void;
|
129
|
+
/**
|
130
|
+
* Applies a force at a specific local point on an actor's physics body
|
131
|
+
*/
|
132
|
+
abstract applyLocalForce(actor: BaseActor, force: Vector3, localPoint?: Vector3): void;
|
133
|
+
/**
|
134
|
+
* Applies an instantaneous force impulse at a specific local point on an actor's physics body
|
135
|
+
*/
|
136
|
+
abstract applyLocalImpulse(actor: BaseActor, force: Vector3, localPoint?: Vector3): void;
|
137
|
+
/**
|
138
|
+
* Removes an actor from the physics world
|
139
|
+
*/
|
140
|
+
abstract removeActor(actor: BaseActor): void;
|
141
|
+
/**
|
142
|
+
* Removes physics bodies for objects that have been removed from the scene
|
143
|
+
*/
|
144
|
+
abstract removeRemoved(scene: Object3D): void;
|
145
|
+
/**
|
146
|
+
* Removes the physics body for a specific scene object
|
147
|
+
*/
|
148
|
+
abstract removeSceneObject(object: Object3D): void;
|
149
|
+
/**
|
150
|
+
* Gets an observable for when an actor begins contact with any object
|
151
|
+
*/
|
152
|
+
abstract onBeginContact(self: BaseActor): Observable<number>;
|
153
|
+
/**
|
154
|
+
* Gets an observable for when an actor ends contact with any object
|
155
|
+
*/
|
156
|
+
abstract onEndContact(self: BaseActor): Observable<number>;
|
157
|
+
/**
|
158
|
+
* Gets an observable that tracks whether an actor is in contact with any object
|
159
|
+
*/
|
160
|
+
abstract onHasContactChanged(self: BaseActor): Observable<boolean>;
|
161
|
+
/**
|
162
|
+
* Gets an observable for when an actor begins overlapping with actors of a specific type
|
163
|
+
*/
|
164
|
+
abstract onBeginOverlapWithActorType<T extends BaseActor, A extends BaseActor>(self: T, actorType: AbstractType<A>): Observable<A>;
|
165
|
+
/**
|
166
|
+
* Gets an observable for when an actor ends overlapping with actors of a specific type
|
167
|
+
*/
|
168
|
+
abstract onEndOverlapWithActorType<T extends BaseActor, A extends BaseActor>(self: T, actorType: AbstractType<A>): Observable<A>;
|
169
|
+
/**
|
170
|
+
* Gets an observable for when an actor begins overlapping with a specific actor
|
171
|
+
*/
|
172
|
+
abstract onBeginOverlapWithActor<T extends BaseActor, A extends BaseActor>(self: T, actor: A): Observable<A>;
|
173
|
+
/**
|
174
|
+
* Gets an observable for when an actor ends overlapping with a specific actor
|
175
|
+
*/
|
176
|
+
abstract onEndOverlapWithActor<T extends BaseActor, A extends BaseActor>(self: T, actor: A): Observable<A>;
|
177
|
+
/**
|
178
|
+
* Gets an observable for collision events with a specific actor
|
179
|
+
*/
|
180
|
+
abstract onCollisionWithActor<A extends BaseActor, S extends BaseActor>(self: S, actor: A): Observable<A>;
|
181
|
+
/**
|
182
|
+
* Gets an observable for collision events with actors of a specific type
|
183
|
+
*/
|
184
|
+
abstract onCollisionWithActorType<A extends BaseActor, S extends BaseActor>(self: S, actorType: AbstractType<A>): Observable<A>;
|
185
|
+
/**
|
186
|
+
* Updates the transform of an actor's physics body to match its visual representation
|
187
|
+
*/
|
188
|
+
abstract updateActorTransform(actor: BaseActor): void;
|
189
|
+
/**
|
190
|
+
* Gets the contact points between an actor and other objects in a specific direction
|
191
|
+
*/
|
192
|
+
abstract getActorContacts(actor: BaseActor, direction: Vector3): {
|
193
|
+
ri: Vector3;
|
194
|
+
rj: Vector3;
|
195
|
+
ni: Vector3;
|
196
|
+
}[];
|
197
|
+
/**
|
198
|
+
* Stops the physics simulation and cleans up resources
|
199
|
+
*/
|
200
|
+
abstract stop(): void;
|
201
|
+
}
|
202
|
+
//# sourceMappingURL=abstract-physics-system.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"abstract-physics-system.d.ts","sourceRoot":"","sources":["../../../../src/gameplay/services/physics/abstract-physics-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,2BAA2B,EAAE,OAAO,CAAA;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,eAAe,CAAA;IACrB,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED;;;;GAIG;AACH,8BAAsB,qBAAqB;IACzC;;OAEG;IACH,kBAAyB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7C;;OAEG;IACH,kBAAyB,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAEpD;;OAEG;IACH,kBAAyB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAEnD;;OAEG;IACH,aAAoB,SAAS,IAAI,OAAO,CAAA;IACxC,aAAoB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAC;IAE7C;;OAEG;aACa,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtC;;OAEG;aACa,WAAW,IAAI,IAAI;IAEnC;;OAEG;aACa,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAEjE;;OAEG;aACa,UAAU,IAAI,OAAO;IAErC;;OAEG;aACa,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IAEpD;;OAEG;aACa,sBAAsB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,4BAA4B;IAE5F;;OAEG;aACa,wBAAwB,CACtC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,CAAC,4BAA4B,EACvC,kBAAkB,EAAE,OAAO,EAC3B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO;IAEV;;OAEG;aACa,2BAA2B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAEjF;;OAEG;aACa,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAE7E;;OAEG;aACa,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAE5E;;OAEG;aACa,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAE9E;;OAEG;aACa,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAE/E;;OAEG;aACa,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAExE;;OAEG;aACa,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAEzE;;OAEG;aACa,wBAAwB,IAAI,MAAM,CAAC,kBAAkB;IAErE;;OAEG;aACa,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC1C,KAAK,EAAE,CAAC,EACR,eAAe,EAAE,cAAc,EAAE,EACjC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACrC,IAAI;IAEP;;OAEG;aACa,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAEpE;;OAEG;aACa,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI;IAElF;;OAEG;aACa,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAEnD;;OAEG;aACa,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAEpD;;OAEG;aACa,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAElE;;OAEG;aACa,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAEpE;;OAEG;aACa,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAE7F;;OAEG;aACa,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAE/F;;OAEG;aACa,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAEnD;;OAEG;aACa,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAEpD;;OAEG;aACa,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IAEzD;;OAEG;aACa,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IAEnE;;OAEG;aACa,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IAEjE;;OAEG;aACa,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC;IAEzE;;OAEG;aACa,2BAA2B,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAClF,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GACzB,UAAU,CAAC,CAAC,CAAC;IAEhB;;OAEG;aACa,yBAAyB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAChF,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GACzB,UAAU,CAAC,CAAC,CAAC;IAEhB;;OAEG;aACa,uBAAuB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAC9E,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,UAAU,CAAC,CAAC,CAAC;IAEhB;;OAEG;aACa,qBAAqB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAC5E,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,UAAU,CAAC,CAAC,CAAC;IAEhB;;OAEG;aACa,oBAAoB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAC3E,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,UAAU,CAAC,CAAC,CAAC;IAEhB;;OAEG;aACa,wBAAwB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAC/E,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GACzB,UAAU,CAAC,CAAC,CAAC;IAEhB;;OAEG;aACa,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAE5D;;OAEG;aACa,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,GAAG;QACtE,EAAE,EAAE,OAAO,CAAC;QACZ,EAAE,EAAE,OAAO,CAAC;QACZ,EAAE,EAAE,OAAO,CAAA;KACZ,EAAE;IAEH;;OAEG;aACa,IAAI,IAAI,IAAI;CAC7B"}
|