@zylem/game-lib 0.4.1 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -41
- package/dist/actions.d.ts +25 -0
- package/dist/actions.js +287 -8
- package/dist/actions.js.map +1 -0
- package/dist/behaviors.d.ts +108 -0
- package/dist/behaviors.js +396 -6
- package/dist/behaviors.js.map +1 -0
- package/dist/{lib/camera/zylem-camera.d.ts → camera-Dk-fOVZE.d.ts} +55 -8
- package/dist/camera.d.ts +5 -0
- package/dist/camera.js +504 -4
- package/dist/camera.js.map +1 -0
- package/dist/core-C2mjetAd.d.ts +431 -0
- package/dist/core.d.ts +9 -0
- package/dist/core.js +4780 -9
- package/dist/core.js.map +1 -0
- package/dist/entities.d.ts +269 -0
- package/dist/entities.js +2161 -17
- package/dist/entities.js.map +1 -0
- package/dist/entity-bQElAdpo.d.ts +347 -0
- package/dist/entity-spawner-DNnLYnZq.d.ts +11 -0
- package/dist/main.d.ts +135 -0
- package/dist/main.js +6599 -56
- package/dist/main.js.map +1 -0
- package/dist/moveable-B_vyA6cw.d.ts +67 -0
- package/dist/stage-CrmY7V0i.d.ts +287 -0
- package/dist/stage.d.ts +26 -0
- package/dist/stage.js +2229 -15
- package/dist/stage.js.map +1 -0
- package/dist/transformable-CUhvyuYO.d.ts +67 -0
- package/package.json +12 -42
- package/LICENSE +0 -21
- package/dist/.vite/manifest.json +0 -676
- package/dist/api/actions.d.ts +0 -5
- package/dist/api/actions.d.ts.map +0 -1
- package/dist/api/behaviors.d.ts +0 -4
- package/dist/api/behaviors.d.ts.map +0 -1
- package/dist/api/camera.d.ts +0 -4
- package/dist/api/camera.d.ts.map +0 -1
- package/dist/api/core.d.ts +0 -6
- package/dist/api/core.d.ts.map +0 -1
- package/dist/api/entities.d.ts +0 -9
- package/dist/api/entities.d.ts.map +0 -1
- package/dist/api/main.d.ts +0 -32
- package/dist/api/main.d.ts.map +0 -1
- package/dist/api/stage.d.ts +0 -6
- package/dist/api/stage.d.ts.map +0 -1
- package/dist/assets/zylem-logo.png +0 -0
- package/dist/lib/actions/behaviors/actions.d.ts +0 -11
- package/dist/lib/actions/behaviors/actions.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/actions.js +0 -35
- package/dist/lib/actions/behaviors/behavior.d.ts +0 -6
- package/dist/lib/actions/behaviors/behavior.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/boundaries/boundary.d.ts +0 -37
- package/dist/lib/actions/behaviors/boundaries/boundary.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/boundaries/boundary.js +0 -40
- package/dist/lib/actions/behaviors/character-controller.d.ts +0 -6
- package/dist/lib/actions/behaviors/character-controller.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/debug/debug-collision.d.ts +0 -6
- package/dist/lib/actions/behaviors/debug/debug-collision.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/debug/debug-update.d.ts +0 -5
- package/dist/lib/actions/behaviors/debug/debug-update.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/debug/debug.d.ts +0 -10
- package/dist/lib/actions/behaviors/debug/debug.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/movement/movement-sequence-2d.d.ts +0 -24
- package/dist/lib/actions/behaviors/movement/movement-sequence-2d.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/ricochet/ricochet-2d-collision.d.ts +0 -11
- package/dist/lib/actions/behaviors/ricochet/ricochet-2d-collision.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/ricochet/ricochet-2d-collision.js +0 -100
- package/dist/lib/actions/behaviors/ricochet/ricochet-2d-in-bounds.d.ts +0 -12
- package/dist/lib/actions/behaviors/ricochet/ricochet-2d-in-bounds.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/ricochet/ricochet-2d-in-bounds.js +0 -37
- package/dist/lib/actions/behaviors/ricochet/ricochet.d.ts +0 -44
- package/dist/lib/actions/behaviors/ricochet/ricochet.d.ts.map +0 -1
- package/dist/lib/actions/behaviors/ricochet/ricochet.js +0 -6
- package/dist/lib/actions/behaviors/zylem-behavior.d.ts +0 -2
- package/dist/lib/actions/behaviors/zylem-behavior.d.ts.map +0 -1
- package/dist/lib/actions/capabilities/moveable.d.ts +0 -125
- package/dist/lib/actions/capabilities/moveable.d.ts.map +0 -1
- package/dist/lib/actions/capabilities/moveable.js +0 -108
- package/dist/lib/actions/capabilities/rotatable.d.ts +0 -111
- package/dist/lib/actions/capabilities/rotatable.d.ts.map +0 -1
- package/dist/lib/actions/capabilities/rotatable.js +0 -82
- package/dist/lib/actions/capabilities/transformable.d.ts +0 -7
- package/dist/lib/actions/capabilities/transformable.d.ts.map +0 -1
- package/dist/lib/actions/capabilities/transformable.js +0 -9
- package/dist/lib/actions/global-change.d.ts +0 -23
- package/dist/lib/actions/global-change.d.ts.map +0 -1
- package/dist/lib/actions/global-change.js +0 -40
- package/dist/lib/camera/camera.d.ts +0 -16
- package/dist/lib/camera/camera.d.ts.map +0 -1
- package/dist/lib/camera/camera.js +0 -19
- package/dist/lib/camera/fixed-2d.d.ts +0 -32
- package/dist/lib/camera/fixed-2d.d.ts.map +0 -1
- package/dist/lib/camera/fixed-2d.js +0 -30
- package/dist/lib/camera/perspective.d.ts +0 -9
- package/dist/lib/camera/perspective.d.ts.map +0 -1
- package/dist/lib/camera/perspective.js +0 -10
- package/dist/lib/camera/third-person.d.ts +0 -32
- package/dist/lib/camera/third-person.d.ts.map +0 -1
- package/dist/lib/camera/third-person.js +0 -42
- package/dist/lib/camera/zylem-camera.d.ts.map +0 -1
- package/dist/lib/camera/zylem-camera.js +0 -208
- package/dist/lib/collision/collision-builder.d.ts +0 -17
- package/dist/lib/collision/collision-builder.d.ts.map +0 -1
- package/dist/lib/collision/collision-builder.js +0 -46
- package/dist/lib/collision/collision-delegate.d.ts +0 -6
- package/dist/lib/collision/collision-delegate.d.ts.map +0 -1
- package/dist/lib/collision/collision-delegate.js +0 -6
- package/dist/lib/collision/collision-group.d.ts +0 -11
- package/dist/lib/collision/collision-group.d.ts.map +0 -1
- package/dist/lib/collision/collision-mask.d.ts +0 -18
- package/dist/lib/collision/collision-mask.d.ts.map +0 -1
- package/dist/lib/collision/collision.d.ts +0 -19
- package/dist/lib/collision/collision.d.ts.map +0 -1
- package/dist/lib/collision/utils.d.ts +0 -15
- package/dist/lib/collision/utils.d.ts.map +0 -1
- package/dist/lib/collision/utils.js +0 -24
- package/dist/lib/collision/world.d.ts +0 -23
- package/dist/lib/collision/world.d.ts.map +0 -1
- package/dist/lib/collision/world.js +0 -77
- package/dist/lib/core/asset-manager.d.ts +0 -2
- package/dist/lib/core/asset-manager.d.ts.map +0 -1
- package/dist/lib/core/base-node-life-cycle.d.ts +0 -68
- package/dist/lib/core/base-node-life-cycle.d.ts.map +0 -1
- package/dist/lib/core/base-node.d.ts +0 -37
- package/dist/lib/core/base-node.d.ts.map +0 -1
- package/dist/lib/core/base-node.js +0 -62
- package/dist/lib/core/entity-asset-loader.d.ts +0 -16
- package/dist/lib/core/entity-asset-loader.d.ts.map +0 -1
- package/dist/lib/core/entity-asset-loader.js +0 -54
- package/dist/lib/core/errors.d.ts +0 -5
- package/dist/lib/core/errors.d.ts.map +0 -1
- package/dist/lib/core/flags.d.ts +0 -3
- package/dist/lib/core/flags.d.ts.map +0 -1
- package/dist/lib/core/index.d.ts +0 -5
- package/dist/lib/core/index.d.ts.map +0 -1
- package/dist/lib/core/lazy-loader.d.ts +0 -80
- package/dist/lib/core/lazy-loader.d.ts.map +0 -1
- package/dist/lib/core/lifecycle-base.d.ts +0 -17
- package/dist/lib/core/lifecycle-base.d.ts.map +0 -1
- package/dist/lib/core/lifecycle-base.js +0 -20
- package/dist/lib/core/preset-shader.d.ts +0 -8
- package/dist/lib/core/preset-shader.d.ts.map +0 -1
- package/dist/lib/core/preset-shader.js +0 -26
- package/dist/lib/core/three-addons/Timer.d.ts +0 -92
- package/dist/lib/core/three-addons/Timer.d.ts.map +0 -1
- package/dist/lib/core/three-addons/Timer.js +0 -103
- package/dist/lib/core/utility/nodes.d.ts +0 -13
- package/dist/lib/core/utility/nodes.d.ts.map +0 -1
- package/dist/lib/core/utility/nodes.js +0 -31
- package/dist/lib/core/utility/strings.d.ts +0 -3
- package/dist/lib/core/utility/strings.d.ts.map +0 -1
- package/dist/lib/core/utility/strings.js +0 -14
- package/dist/lib/core/utility/vector.d.ts +0 -8
- package/dist/lib/core/utility/vector.d.ts.map +0 -1
- package/dist/lib/core/utility/vector.js +0 -8
- package/dist/lib/core/vector.d.ts +0 -4
- package/dist/lib/core/vector.d.ts.map +0 -1
- package/dist/lib/core/vessel.d.ts +0 -13
- package/dist/lib/core/vessel.d.ts.map +0 -1
- package/dist/lib/core/vessel.js +0 -26
- package/dist/lib/debug/console/console-state.d.ts +0 -20
- package/dist/lib/debug/console/console-state.d.ts.map +0 -1
- package/dist/lib/debug/console/console-state.js +0 -11
- package/dist/lib/debug/console/console-store.d.ts +0 -6
- package/dist/lib/debug/console/console-store.d.ts.map +0 -1
- package/dist/lib/debug/debug-state.d.ts +0 -38
- package/dist/lib/debug/debug-state.d.ts.map +0 -1
- package/dist/lib/debug/debug-state.js +0 -40
- package/dist/lib/debug/debug-store.d.ts +0 -15
- package/dist/lib/debug/debug-store.d.ts.map +0 -1
- package/dist/lib/debug/state-based-debug-loader.d.ts +0 -8
- package/dist/lib/debug/state-based-debug-loader.d.ts.map +0 -1
- package/dist/lib/device/aspect-ratio.d.ts +0 -38
- package/dist/lib/device/aspect-ratio.d.ts.map +0 -1
- package/dist/lib/device/aspect-ratio.js +0 -44
- package/dist/lib/device/desktop.d.ts +0 -2
- package/dist/lib/device/desktop.d.ts.map +0 -1
- package/dist/lib/device/mobile.d.ts +0 -2
- package/dist/lib/device/mobile.d.ts.map +0 -1
- package/dist/lib/device/tablet.d.ts +0 -2
- package/dist/lib/device/tablet.d.ts.map +0 -1
- package/dist/lib/entities/actor.d.ts +0 -44
- package/dist/lib/entities/actor.d.ts.map +0 -1
- package/dist/lib/entities/actor.js +0 -122
- package/dist/lib/entities/box.d.ts +0 -27
- package/dist/lib/entities/box.d.ts.map +0 -1
- package/dist/lib/entities/box.js +0 -68
- package/dist/lib/entities/builder.d.ts +0 -28
- package/dist/lib/entities/builder.d.ts.map +0 -1
- package/dist/lib/entities/builder.js +0 -79
- package/dist/lib/entities/create.d.ts +0 -15
- package/dist/lib/entities/create.d.ts.map +0 -1
- package/dist/lib/entities/create.js +0 -31
- package/dist/lib/entities/delegates/animation.d.ts +0 -33
- package/dist/lib/entities/delegates/animation.d.ts.map +0 -1
- package/dist/lib/entities/delegates/animation.js +0 -58
- package/dist/lib/entities/delegates/debug.d.ts +0 -29
- package/dist/lib/entities/delegates/debug.d.ts.map +0 -1
- package/dist/lib/entities/delegates/debug.js +0 -71
- package/dist/lib/entities/delegates/loader.d.ts +0 -12
- package/dist/lib/entities/delegates/loader.d.ts.map +0 -1
- package/dist/lib/entities/delegates/loader.js +0 -19
- package/dist/lib/entities/destroy.d.ts +0 -4
- package/dist/lib/entities/destroy.d.ts.map +0 -1
- package/dist/lib/entities/destroy.js +0 -15
- package/dist/lib/entities/entity.d.ts +0 -96
- package/dist/lib/entities/entity.d.ts.map +0 -1
- package/dist/lib/entities/entity.js +0 -120
- package/dist/lib/entities/index.d.ts +0 -12
- package/dist/lib/entities/index.d.ts.map +0 -1
- package/dist/lib/entities/plane.d.ts +0 -36
- package/dist/lib/entities/plane.d.ts.map +0 -1
- package/dist/lib/entities/plane.js +0 -81
- package/dist/lib/entities/rect.d.ts +0 -63
- package/dist/lib/entities/rect.d.ts.map +0 -1
- package/dist/lib/entities/rect.js +0 -160
- package/dist/lib/entities/sphere.d.ts +0 -29
- package/dist/lib/entities/sphere.d.ts.map +0 -1
- package/dist/lib/entities/sphere.js +0 -68
- package/dist/lib/entities/sprite.d.ts +0 -53
- package/dist/lib/entities/sprite.d.ts.map +0 -1
- package/dist/lib/entities/sprite.js +0 -118
- package/dist/lib/entities/text.d.ts +0 -49
- package/dist/lib/entities/text.d.ts.map +0 -1
- package/dist/lib/entities/text.js +0 -140
- package/dist/lib/entities/zone.d.ts +0 -54
- package/dist/lib/entities/zone.d.ts.map +0 -1
- package/dist/lib/entities/zone.js +0 -103
- package/dist/lib/game/game-blueprint.d.ts +0 -38
- package/dist/lib/game/game-blueprint.d.ts.map +0 -1
- package/dist/lib/game/game-canvas.d.ts +0 -35
- package/dist/lib/game/game-canvas.d.ts.map +0 -1
- package/dist/lib/game/game-canvas.js +0 -57
- package/dist/lib/game/game-config.d.ts +0 -59
- package/dist/lib/game/game-config.d.ts.map +0 -1
- package/dist/lib/game/game-config.js +0 -78
- package/dist/lib/game/game-default.d.ts +0 -14
- package/dist/lib/game/game-default.d.ts.map +0 -1
- package/dist/lib/game/game-default.js +0 -23
- package/dist/lib/game/game-interfaces.d.ts +0 -29
- package/dist/lib/game/game-interfaces.d.ts.map +0 -1
- package/dist/lib/game/game-retro-resolutions.d.ts +0 -25
- package/dist/lib/game/game-retro-resolutions.d.ts.map +0 -1
- package/dist/lib/game/game-retro-resolutions.js +0 -80
- package/dist/lib/game/game-state.d.ts +0 -11
- package/dist/lib/game/game-state.d.ts.map +0 -1
- package/dist/lib/game/game-state.js +0 -17
- package/dist/lib/game/game.d.ts +0 -37
- package/dist/lib/game/game.d.ts.map +0 -1
- package/dist/lib/game/game.js +0 -109
- package/dist/lib/game/zylem-game.d.ts +0 -58
- package/dist/lib/game/zylem-game.d.ts.map +0 -1
- package/dist/lib/game/zylem-game.js +0 -140
- package/dist/lib/graphics/geometries/XZPlaneGeometry.d.ts +0 -8
- package/dist/lib/graphics/geometries/XZPlaneGeometry.d.ts.map +0 -1
- package/dist/lib/graphics/geometries/XZPlaneGeometry.js +0 -34
- package/dist/lib/graphics/material.d.ts +0 -29
- package/dist/lib/graphics/material.d.ts.map +0 -1
- package/dist/lib/graphics/material.js +0 -64
- package/dist/lib/graphics/mesh.d.ts +0 -19
- package/dist/lib/graphics/mesh.d.ts.map +0 -1
- package/dist/lib/graphics/mesh.js +0 -14
- package/dist/lib/graphics/render-pass.d.ts +0 -17
- package/dist/lib/graphics/render-pass.d.ts.map +0 -1
- package/dist/lib/graphics/render-pass.js +0 -56
- package/dist/lib/graphics/shaders/fragment/debug.glsl.js +0 -23
- package/dist/lib/graphics/shaders/fragment/fire.glsl.js +0 -52
- package/dist/lib/graphics/shaders/fragment/standard.glsl.js +0 -11
- package/dist/lib/graphics/shaders/fragment/stars.glsl.js +0 -44
- package/dist/lib/graphics/shaders/vertex/debug.glsl.js +0 -15
- package/dist/lib/graphics/shaders/vertex/object-shader.glsl.js +0 -11
- package/dist/lib/graphics/shaders/vertex/standard.glsl.js +0 -9
- package/dist/lib/graphics/zylem-scene.d.ts +0 -50
- package/dist/lib/graphics/zylem-scene.d.ts.map +0 -1
- package/dist/lib/graphics/zylem-scene.js +0 -75
- package/dist/lib/input/gamepad-provider.d.ts +0 -14
- package/dist/lib/input/gamepad-provider.d.ts.map +0 -1
- package/dist/lib/input/gamepad-provider.js +0 -58
- package/dist/lib/input/input-manager.d.ts +0 -15
- package/dist/lib/input/input-manager.d.ts.map +0 -1
- package/dist/lib/input/input-manager.js +0 -70
- package/dist/lib/input/input-provider.d.ts +0 -7
- package/dist/lib/input/input-provider.d.ts.map +0 -1
- package/dist/lib/input/input.d.ts +0 -48
- package/dist/lib/input/input.d.ts.map +0 -1
- package/dist/lib/input/keyboard-provider.d.ts +0 -21
- package/dist/lib/input/keyboard-provider.d.ts.map +0 -1
- package/dist/lib/input/keyboard-provider.js +0 -120
- package/dist/lib/interfaces/entity.d.ts +0 -26
- package/dist/lib/interfaces/entity.d.ts.map +0 -1
- package/dist/lib/sounds/index.d.ts +0 -3
- package/dist/lib/sounds/index.d.ts.map +0 -1
- package/dist/lib/sounds/ping-pong-sound.d.ts +0 -5
- package/dist/lib/sounds/ping-pong-sound.d.ts.map +0 -1
- package/dist/lib/sounds/ricochet-sound.d.ts +0 -5
- package/dist/lib/sounds/ricochet-sound.d.ts.map +0 -1
- package/dist/lib/stage/debug-entity-cursor.d.ts +0 -24
- package/dist/lib/stage/debug-entity-cursor.d.ts.map +0 -1
- package/dist/lib/stage/debug-entity-cursor.js +0 -53
- package/dist/lib/stage/entity-spawner.d.ts +0 -9
- package/dist/lib/stage/entity-spawner.d.ts.map +0 -1
- package/dist/lib/stage/entity-spawner.js +0 -27
- package/dist/lib/stage/stage-blueprint.d.ts +0 -45
- package/dist/lib/stage/stage-blueprint.d.ts.map +0 -1
- package/dist/lib/stage/stage-blueprint.js +0 -56
- package/dist/lib/stage/stage-camera-debug-delegate.d.ts +0 -14
- package/dist/lib/stage/stage-camera-debug-delegate.d.ts.map +0 -1
- package/dist/lib/stage/stage-debug-delegate.d.ts +0 -26
- package/dist/lib/stage/stage-debug-delegate.d.ts.map +0 -1
- package/dist/lib/stage/stage-debug-delegate.js +0 -100
- package/dist/lib/stage/stage-default.d.ts +0 -3
- package/dist/lib/stage/stage-default.d.ts.map +0 -1
- package/dist/lib/stage/stage-default.js +0 -32
- package/dist/lib/stage/stage-state.d.ts +0 -14
- package/dist/lib/stage/stage-state.d.ts.map +0 -1
- package/dist/lib/stage/stage-state.js +0 -36
- package/dist/lib/stage/stage.d.ts +0 -33
- package/dist/lib/stage/stage.d.ts.map +0 -1
- package/dist/lib/stage/stage.js +0 -60
- package/dist/lib/stage/zylem-stage.d.ts +0 -128
- package/dist/lib/stage/zylem-stage.d.ts.map +0 -1
- package/dist/lib/stage/zylem-stage.js +0 -268
- package/dist/lib/systems/test-system.d.ts +0 -2
- package/dist/lib/systems/test-system.d.ts.map +0 -1
- package/dist/lib/systems/transformable.system.d.ts +0 -25
- package/dist/lib/systems/transformable.system.d.ts.map +0 -1
- package/dist/lib/systems/transformable.system.js +0 -43
- package/dist/lib/types/entity-types.d.ts +0 -24
- package/dist/lib/types/entity-types.d.ts.map +0 -1
- package/dist/lib/types/index.d.ts +0 -3
- package/dist/lib/types/index.d.ts.map +0 -1
- package/dist/lib/types/stage-types.d.ts +0 -26
- package/dist/lib/types/stage-types.d.ts.map +0 -1
- package/dist/lib/ui/Debug.d.ts +0 -6
- package/dist/lib/ui/Debug.d.ts.map +0 -1
- package/dist/lib/ui/console/Console.d.ts +0 -7
- package/dist/lib/ui/console/Console.d.ts.map +0 -1
- package/dist/lib/ui/debug-panel/AccordionMenu.d.ts +0 -7
- package/dist/lib/ui/debug-panel/AccordionMenu.d.ts.map +0 -1
- package/dist/lib/ui/debug-panel/Menu.d.ts +0 -6
- package/dist/lib/ui/debug-panel/Menu.d.ts.map +0 -1
- package/dist/lib/ui/debug-panel/sections/EntitiesSection.d.ts +0 -4
- package/dist/lib/ui/debug-panel/sections/EntitiesSection.d.ts.map +0 -1
- package/dist/lib/ui/debug-panel/sections/GameSection.d.ts +0 -3
- package/dist/lib/ui/debug-panel/sections/GameSection.d.ts.map +0 -1
- package/dist/lib/ui/debug-panel/sections/StagesSection.d.ts +0 -3
- package/dist/lib/ui/debug-panel/sections/StagesSection.d.ts.map +0 -1
- package/dist/lib/ui/debug-panel/sections/all.d.ts +0 -4
- package/dist/lib/ui/debug-panel/sections/all.d.ts.map +0 -1
- package/dist/lib/ui/toolbar/Toolbar.d.ts +0 -6
- package/dist/lib/ui/toolbar/Toolbar.d.ts.map +0 -1
- package/dist/tests/integration/debug.sim.spec.d.ts +0 -2
- package/dist/tests/integration/debug.sim.spec.d.ts.map +0 -1
- package/dist/tests/unit/collision/collision.spec.d.ts +0 -2
- package/dist/tests/unit/collision/collision.spec.d.ts.map +0 -1
- package/dist/tests/unit/core/game.spec.d.ts +0 -2
- package/dist/tests/unit/core/game.spec.d.ts.map +0 -1
- package/dist/tests/unit/core/stage.spec.d.ts +0 -2
- package/dist/tests/unit/core/stage.spec.d.ts.map +0 -1
- package/dist/tests/unit/core/vessel.spec.d.ts +0 -2
- package/dist/tests/unit/core/vessel.spec.d.ts.map +0 -1
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Scene, Vector2, Vector3, WebGLRenderer } from 'three';
|
|
2
|
-
import { PerspectiveController, ZylemCamera } from './zylem-camera';
|
|
3
|
-
export declare class ThirdPersonCamera implements PerspectiveController {
|
|
4
|
-
distance: Vector3;
|
|
5
|
-
screenResolution: Vector2 | null;
|
|
6
|
-
renderer: WebGLRenderer | null;
|
|
7
|
-
scene: Scene | null;
|
|
8
|
-
cameraRef: ZylemCamera | null;
|
|
9
|
-
constructor();
|
|
10
|
-
/**
|
|
11
|
-
* Setup the third person camera controller
|
|
12
|
-
*/
|
|
13
|
-
setup(params: {
|
|
14
|
-
screenResolution: Vector2;
|
|
15
|
-
renderer: WebGLRenderer;
|
|
16
|
-
scene: Scene;
|
|
17
|
-
camera: ZylemCamera;
|
|
18
|
-
}): void;
|
|
19
|
-
/**
|
|
20
|
-
* Update the third person camera
|
|
21
|
-
*/
|
|
22
|
-
update(delta: number): void;
|
|
23
|
-
/**
|
|
24
|
-
* Handle resize events
|
|
25
|
-
*/
|
|
26
|
-
resize(width: number, height: number): void;
|
|
27
|
-
/**
|
|
28
|
-
* Set the distance from the target
|
|
29
|
-
*/
|
|
30
|
-
setDistance(distance: Vector3): void;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=third-person.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"third-person.d.ts","sourceRoot":"","sources":["../../../src/lib/camera/third-person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAWpE,qBAAa,iBAAkB,YAAW,qBAAqB;IAC9D,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAQ;IACxC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAQ;IACtC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC3B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;;IAMrC;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE;QAAE,gBAAgB,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE;IAQvG;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM;IAUpB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOpC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO;CAG7B"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Vector3 as a } from "three";
|
|
2
|
-
class c {
|
|
3
|
-
distance;
|
|
4
|
-
screenResolution = null;
|
|
5
|
-
renderer = null;
|
|
6
|
-
scene = null;
|
|
7
|
-
cameraRef = null;
|
|
8
|
-
constructor() {
|
|
9
|
-
this.distance = new a(0, 5, 8);
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Setup the third person camera controller
|
|
13
|
-
*/
|
|
14
|
-
setup(e) {
|
|
15
|
-
const { screenResolution: t, renderer: s, scene: r, camera: i } = e;
|
|
16
|
-
this.screenResolution = t, this.renderer = s, this.scene = r, this.cameraRef = i;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Update the third person camera
|
|
20
|
-
*/
|
|
21
|
-
update(e) {
|
|
22
|
-
if (!this.cameraRef.target)
|
|
23
|
-
return;
|
|
24
|
-
const t = this.cameraRef.target.group.position.clone().add(this.distance);
|
|
25
|
-
this.cameraRef.camera.position.lerp(t, 0.1), this.cameraRef.camera.lookAt(this.cameraRef.target.group.position);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Handle resize events
|
|
29
|
-
*/
|
|
30
|
-
resize(e, t) {
|
|
31
|
-
this.screenResolution && this.screenResolution.set(e, t);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Set the distance from the target
|
|
35
|
-
*/
|
|
36
|
-
setDistance(e) {
|
|
37
|
-
this.distance = e;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
export {
|
|
41
|
-
c as ThirdPersonCamera
|
|
42
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zylem-camera.d.ts","sourceRoot":"","sources":["../../../src/lib/camera/zylem-camera.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { Vector3 as a, WebGLRenderer as c, Object3D as u, PerspectiveCamera as o, OrthographicCamera as n } from "three";
|
|
2
|
-
import { OrbitControls as l } from "three/addons/controls/OrbitControls.js";
|
|
3
|
-
import { Perspectives as s } from "./perspective.js";
|
|
4
|
-
import { ThirdPersonCamera as h } from "./third-person.js";
|
|
5
|
-
import { Fixed2DCamera as m } from "./fixed-2d.js";
|
|
6
|
-
import { EffectComposer as b } from "three/examples/jsm/postprocessing/EffectComposer.js";
|
|
7
|
-
import d from "../graphics/render-pass.js";
|
|
8
|
-
class F {
|
|
9
|
-
cameraRig;
|
|
10
|
-
camera;
|
|
11
|
-
screenResolution;
|
|
12
|
-
renderer;
|
|
13
|
-
composer;
|
|
14
|
-
_perspective;
|
|
15
|
-
orbitControls = null;
|
|
16
|
-
target = null;
|
|
17
|
-
sceneRef = null;
|
|
18
|
-
frustumSize = 10;
|
|
19
|
-
// Perspective controller delegation
|
|
20
|
-
perspectiveController = null;
|
|
21
|
-
debugDelegate = null;
|
|
22
|
-
debugUnsubscribe = null;
|
|
23
|
-
debugStateSnapshot = { enabled: !1, selected: [] };
|
|
24
|
-
orbitTarget = null;
|
|
25
|
-
orbitTargetWorldPos = new a();
|
|
26
|
-
constructor(e, t, r = 10) {
|
|
27
|
-
this._perspective = e, this.screenResolution = t, this.frustumSize = r, this.renderer = new c({ antialias: !1, alpha: !0 }), this.renderer.setSize(t.x, t.y), this.renderer.shadowMap.enabled = !0, this.composer = new b(this.renderer);
|
|
28
|
-
const i = t.x / t.y;
|
|
29
|
-
this.camera = this.createCameraForPerspective(i), this.cameraRig = new u(), this.cameraRig.position.set(0, 3, 10), this.cameraRig.add(this.camera), this.camera.lookAt(new a(0, 2, 0)), this.initializePerspectiveController();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Setup the camera with a scene
|
|
33
|
-
*/
|
|
34
|
-
async setup(e) {
|
|
35
|
-
this.sceneRef = e, this.orbitControls === null && (this.orbitControls = new l(this.camera, this.renderer.domElement), this.orbitControls.enableDamping = !0, this.orbitControls.dampingFactor = 0.05, this.orbitControls.screenSpacePanning = !1, this.orbitControls.minDistance = 1, this.orbitControls.maxDistance = 500, this.orbitControls.maxPolarAngle = Math.PI / 2);
|
|
36
|
-
let t = this.screenResolution.clone().divideScalar(2);
|
|
37
|
-
t.x |= 0, t.y |= 0;
|
|
38
|
-
const r = new d(t, e, this.camera);
|
|
39
|
-
this.composer.addPass(r), this.perspectiveController && this.perspectiveController.setup({
|
|
40
|
-
screenResolution: this.screenResolution,
|
|
41
|
-
renderer: this.renderer,
|
|
42
|
-
scene: e,
|
|
43
|
-
camera: this
|
|
44
|
-
}), this.renderer.setAnimationLoop((i) => {
|
|
45
|
-
this.update(i || 0);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Update camera and render
|
|
50
|
-
*/
|
|
51
|
-
update(e) {
|
|
52
|
-
this.orbitControls && this.orbitTarget && (this.orbitTarget.getWorldPosition(this.orbitTargetWorldPos), this.orbitControls.target.copy(this.orbitTargetWorldPos)), this.orbitControls?.update(), this.perspectiveController && this.perspectiveController.update(e), this.composer.render(e);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Dispose renderer, composer, controls, and detach from scene
|
|
56
|
-
*/
|
|
57
|
-
destroy() {
|
|
58
|
-
try {
|
|
59
|
-
this.renderer.setAnimationLoop(null);
|
|
60
|
-
} catch {
|
|
61
|
-
}
|
|
62
|
-
try {
|
|
63
|
-
this.disableOrbitControls();
|
|
64
|
-
} catch {
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
this.composer?.passes?.forEach((e) => e.dispose?.()), this.composer?.dispose?.();
|
|
68
|
-
} catch {
|
|
69
|
-
}
|
|
70
|
-
try {
|
|
71
|
-
this.renderer.dispose();
|
|
72
|
-
} catch {
|
|
73
|
-
}
|
|
74
|
-
this.detachDebugDelegate(), this.sceneRef = null;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Attach a delegate to react to debug state changes.
|
|
78
|
-
*/
|
|
79
|
-
setDebugDelegate(e) {
|
|
80
|
-
if (this.debugDelegate === e)
|
|
81
|
-
return;
|
|
82
|
-
if (this.detachDebugDelegate(), this.debugDelegate = e, !e) {
|
|
83
|
-
this.applyDebugState({ enabled: !1, selected: [] });
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
const t = e.subscribe((r) => {
|
|
87
|
-
this.applyDebugState(r);
|
|
88
|
-
});
|
|
89
|
-
this.debugUnsubscribe = () => {
|
|
90
|
-
t?.();
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Resize camera and renderer
|
|
95
|
-
*/
|
|
96
|
-
resize(e, t) {
|
|
97
|
-
this.screenResolution.set(e, t), this.renderer.setSize(e, t, !1), this.composer.setSize(e, t), this.camera instanceof o && (this.camera.aspect = e / t, this.camera.updateProjectionMatrix()), this.perspectiveController && this.perspectiveController.resize(e, t);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Update renderer pixel ratio (DPR)
|
|
101
|
-
*/
|
|
102
|
-
setPixelRatio(e) {
|
|
103
|
-
const t = Math.max(1, Number.isFinite(e) ? e : 1);
|
|
104
|
-
this.renderer.setPixelRatio(t);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Create camera based on perspective type
|
|
108
|
-
*/
|
|
109
|
-
createCameraForPerspective(e) {
|
|
110
|
-
switch (this._perspective) {
|
|
111
|
-
case s.ThirdPerson:
|
|
112
|
-
return this.createThirdPersonCamera(e);
|
|
113
|
-
case s.FirstPerson:
|
|
114
|
-
return this.createFirstPersonCamera(e);
|
|
115
|
-
case s.Isometric:
|
|
116
|
-
return this.createIsometricCamera(e);
|
|
117
|
-
case s.Flat2D:
|
|
118
|
-
return this.createFlat2DCamera(e);
|
|
119
|
-
case s.Fixed2D:
|
|
120
|
-
return this.createFixed2DCamera(e);
|
|
121
|
-
default:
|
|
122
|
-
return this.createThirdPersonCamera(e);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Initialize perspective-specific controller
|
|
127
|
-
*/
|
|
128
|
-
initializePerspectiveController() {
|
|
129
|
-
switch (this._perspective) {
|
|
130
|
-
case s.ThirdPerson:
|
|
131
|
-
this.perspectiveController = new h();
|
|
132
|
-
break;
|
|
133
|
-
case s.Fixed2D:
|
|
134
|
-
this.perspectiveController = new m();
|
|
135
|
-
break;
|
|
136
|
-
default:
|
|
137
|
-
this.perspectiveController = new h();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
createThirdPersonCamera(e) {
|
|
141
|
-
return new o(75, e, 0.1, 1e3);
|
|
142
|
-
}
|
|
143
|
-
createFirstPersonCamera(e) {
|
|
144
|
-
return new o(75, e, 0.1, 1e3);
|
|
145
|
-
}
|
|
146
|
-
createIsometricCamera(e) {
|
|
147
|
-
return new n(this.frustumSize * e / -2, this.frustumSize * e / 2, this.frustumSize / 2, this.frustumSize / -2, 1, 1e3);
|
|
148
|
-
}
|
|
149
|
-
createFlat2DCamera(e) {
|
|
150
|
-
return new n(this.frustumSize * e / -2, this.frustumSize * e / 2, this.frustumSize / 2, this.frustumSize / -2, 1, 1e3);
|
|
151
|
-
}
|
|
152
|
-
createFixed2DCamera(e) {
|
|
153
|
-
return this.createFlat2DCamera(e);
|
|
154
|
-
}
|
|
155
|
-
// Movement methods
|
|
156
|
-
moveCamera(e) {
|
|
157
|
-
(this._perspective === s.Flat2D || this._perspective === s.Fixed2D) && (this.frustumSize = e.z), this.cameraRig.position.set(e.x, e.y, e.z);
|
|
158
|
-
}
|
|
159
|
-
move(e) {
|
|
160
|
-
this.moveCamera(e);
|
|
161
|
-
}
|
|
162
|
-
rotate(e, t, r) {
|
|
163
|
-
this.cameraRig.rotateX(e), this.cameraRig.rotateY(t), this.cameraRig.rotateZ(r);
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Get the DOM element for the renderer
|
|
167
|
-
*/
|
|
168
|
-
getDomElement() {
|
|
169
|
-
return this.renderer.domElement;
|
|
170
|
-
}
|
|
171
|
-
applyDebugState(e) {
|
|
172
|
-
this.debugStateSnapshot = {
|
|
173
|
-
enabled: e.enabled,
|
|
174
|
-
selected: [...e.selected]
|
|
175
|
-
}, e.enabled ? (this.enableOrbitControls(), this.updateOrbitTargetFromSelection(e.selected)) : (this.orbitTarget = null, this.disableOrbitControls());
|
|
176
|
-
}
|
|
177
|
-
enableOrbitControls() {
|
|
178
|
-
this.orbitControls || (this.orbitControls = new l(this.camera, this.renderer.domElement), this.orbitControls.enableDamping = !0, this.orbitControls.dampingFactor = 0.05, this.orbitControls.screenSpacePanning = !1, this.orbitControls.minDistance = 1, this.orbitControls.maxDistance = 500, this.orbitControls.maxPolarAngle = Math.PI / 2);
|
|
179
|
-
}
|
|
180
|
-
disableOrbitControls() {
|
|
181
|
-
this.orbitControls && (this.orbitControls.dispose(), this.orbitControls = null);
|
|
182
|
-
}
|
|
183
|
-
updateOrbitTargetFromSelection(e) {
|
|
184
|
-
if (!this.debugDelegate || e.length === 0) {
|
|
185
|
-
this.orbitTarget = null;
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
for (let t = e.length - 1; t >= 0; t -= 1) {
|
|
189
|
-
const r = e[t], i = this.debugDelegate.resolveTarget(r);
|
|
190
|
-
if (i) {
|
|
191
|
-
this.orbitTarget = i, this.orbitControls && (i.getWorldPosition(this.orbitTargetWorldPos), this.orbitControls.target.copy(this.orbitTargetWorldPos));
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
this.orbitTarget = null;
|
|
196
|
-
}
|
|
197
|
-
detachDebugDelegate() {
|
|
198
|
-
if (this.debugUnsubscribe)
|
|
199
|
-
try {
|
|
200
|
-
this.debugUnsubscribe();
|
|
201
|
-
} catch {
|
|
202
|
-
}
|
|
203
|
-
this.debugUnsubscribe = null, this.debugDelegate = null;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
export {
|
|
207
|
-
F as ZylemCamera
|
|
208
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ColliderDesc, RigidBodyDesc } from "@dimforge/rapier3d-compat";
|
|
2
|
-
import { Vec3 } from "../core/vector";
|
|
3
|
-
import { CollisionOptions } from "./collision";
|
|
4
|
-
export declare function getOrCreateCollisionGroupId(type: string): number;
|
|
5
|
-
export declare function createCollisionFilter(allowedTypes: string[]): number;
|
|
6
|
-
export declare class CollisionBuilder {
|
|
7
|
-
static: boolean;
|
|
8
|
-
sensor: boolean;
|
|
9
|
-
gravity: Vec3;
|
|
10
|
-
build(options: Partial<CollisionOptions>): [RigidBodyDesc, ColliderDesc];
|
|
11
|
-
withCollision(collisionOptions: Partial<CollisionOptions>): this;
|
|
12
|
-
collider(options: CollisionOptions): ColliderDesc;
|
|
13
|
-
bodyDesc({ isDynamicBody }: {
|
|
14
|
-
isDynamicBody?: boolean | undefined;
|
|
15
|
-
}): RigidBodyDesc;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=collision-builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collision-builder.d.ts","sourceRoot":"","sources":["../../../src/lib/collision/collision-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,YAAY,EAAE,aAAa,EAA0B,MAAM,2BAA2B,CAAC;AACtH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAOpE;AAED,qBAAa,gBAAgB;IAC5B,MAAM,EAAE,OAAO,CAAS;IACxB,MAAM,EAAE,OAAO,CAAS;IACxB,OAAO,EAAE,IAAI,CAAwB;IAErC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;IAmBxE,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAMhE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IAOjD,QAAQ,CAAC,EAAE,aAAoB,EAAE;;KAAA,GAAG,aAAa;CASjD"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Vector3 as r, ActiveCollisionTypes as f, ColliderDesc as p, RigidBodyType as c, RigidBodyDesc as D } from "@dimforge/rapier3d-compat";
|
|
2
|
-
const n = /* @__PURE__ */ new Map();
|
|
3
|
-
let h = 0;
|
|
4
|
-
function d(i) {
|
|
5
|
-
let e = n.get(i);
|
|
6
|
-
return e === void 0 && (e = h++ % 16, n.set(i, e)), e;
|
|
7
|
-
}
|
|
8
|
-
function C(i) {
|
|
9
|
-
let e = 0;
|
|
10
|
-
return i.forEach((s) => {
|
|
11
|
-
const t = d(s);
|
|
12
|
-
e |= 1 << t;
|
|
13
|
-
}), e;
|
|
14
|
-
}
|
|
15
|
-
class g {
|
|
16
|
-
static = !1;
|
|
17
|
-
sensor = !1;
|
|
18
|
-
gravity = new r(0, 0, 0);
|
|
19
|
-
build(e) {
|
|
20
|
-
const s = this.bodyDesc({
|
|
21
|
-
isDynamicBody: !this.static
|
|
22
|
-
}), t = this.collider(e), o = e.collisionType;
|
|
23
|
-
if (o) {
|
|
24
|
-
let u = d(o), l = 65535;
|
|
25
|
-
e.collisionFilter && (l = C(e.collisionFilter)), t.setCollisionGroups(u << 16 | l);
|
|
26
|
-
}
|
|
27
|
-
const { KINEMATIC_FIXED: a, DEFAULT: y } = f;
|
|
28
|
-
return t.activeCollisionTypes = this.sensor ? a : y, [s, t];
|
|
29
|
-
}
|
|
30
|
-
withCollision(e) {
|
|
31
|
-
return this.sensor = e?.sensor ?? this.sensor, this.static = e?.static ?? this.static, this;
|
|
32
|
-
}
|
|
33
|
-
collider(e) {
|
|
34
|
-
const s = e.size ?? new r(1, 1, 1), t = { x: s.x / 2, y: s.y / 2, z: s.z / 2 };
|
|
35
|
-
return p.cuboid(t.x, t.y, t.z);
|
|
36
|
-
}
|
|
37
|
-
bodyDesc({ isDynamicBody: e = !0 }) {
|
|
38
|
-
const s = e ? c.Dynamic : c.Fixed;
|
|
39
|
-
return new D(s).setTranslation(0, 0, 0).setGravityScale(1).setCanSleep(!1).setCcdEnabled(!0);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export {
|
|
43
|
-
g as CollisionBuilder,
|
|
44
|
-
C as createCollisionFilter,
|
|
45
|
-
d as getOrCreateCollisionGroupId
|
|
46
|
-
};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare function isCollisionHandlerDelegate(obj: any): obj is CollisionHandlerDelegate;
|
|
2
|
-
export interface CollisionHandlerDelegate {
|
|
3
|
-
handlePostCollision(params: any): boolean;
|
|
4
|
-
handleIntersectionEvent(params: any): void;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=collision-delegate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collision-delegate.d.ts","sourceRoot":"","sources":["../../../src/lib/collision/collision-delegate.ts"],"names":[],"mappings":"AACA,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,wBAAwB,CAEpF;AAED,MAAM,WAAW,wBAAwB;IACxC,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAC1C,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CAC3C"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { GameEntity } from '../entities/entity';
|
|
2
|
-
/**
|
|
3
|
-
* Configure an entity's collision groups to only collide with the specified types.
|
|
4
|
-
* This uses Rapier's built-in collision group system for efficient filtering.
|
|
5
|
-
*
|
|
6
|
-
* @param entity - The entity to configure collision groups for
|
|
7
|
-
* @param allowedTypes - Array of collision types this entity should collide with
|
|
8
|
-
* @returns The entity for method chaining
|
|
9
|
-
*/
|
|
10
|
-
export declare function collisionGroup<T extends GameEntity<any>>(entity: T, allowedTypes: string[]): T;
|
|
11
|
-
//# sourceMappingURL=collision-group.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collision-group.d.ts","sourceRoot":"","sources":["../../../src/lib/collision/collision-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EACvD,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,MAAM,EAAE,GACpB,CAAC,CAiBH"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { GameEntity } from "../entities/entity";
|
|
2
|
-
/**
|
|
3
|
-
* A branded bitmask representing a set of collision types.
|
|
4
|
-
* Construct with {@link buildCollisionMask}.
|
|
5
|
-
*/
|
|
6
|
-
export type CollisionMask = number & {
|
|
7
|
-
readonly __brand: "CollisionMask";
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Builds a bitmask from one or more collision type names.
|
|
11
|
-
* The type names should match the values set on `GameEntity.collisionType`.
|
|
12
|
-
*/
|
|
13
|
-
export declare function buildCollisionMask(...types: string[]): CollisionMask;
|
|
14
|
-
/**
|
|
15
|
-
* Tests whether the given entity's collision type is included in the mask.
|
|
16
|
-
*/
|
|
17
|
-
export declare function entityMatchesMask(entity: GameEntity<any>, mask: CollisionMask): boolean;
|
|
18
|
-
//# sourceMappingURL=collision-mask.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collision-mask.d.ts","sourceRoot":"","sources":["../../../src/lib/collision/collision-mask.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC;AAE3E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAIvF"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { RigidBodyDesc } from '@dimforge/rapier3d-compat';
|
|
2
|
-
import { Vector3 } from 'three';
|
|
3
|
-
export declare class BaseCollision {
|
|
4
|
-
static: boolean;
|
|
5
|
-
isSensor: boolean;
|
|
6
|
-
bodyDescription: RigidBodyDesc;
|
|
7
|
-
constructor({ isDynamicBody }: {
|
|
8
|
-
isDynamicBody?: boolean | undefined;
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
export interface CollisionOptions {
|
|
12
|
-
static?: boolean;
|
|
13
|
-
sensor?: boolean;
|
|
14
|
-
size?: Vector3;
|
|
15
|
-
position?: Vector3;
|
|
16
|
-
collisionType?: string;
|
|
17
|
-
collisionFilter?: string[];
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=collision.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collision.d.ts","sourceRoot":"","sources":["../../../src/lib/collision/collision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,qBAAa,aAAa;IACzB,MAAM,EAAE,OAAO,CAAS;IACxB,QAAQ,EAAE,OAAO,CAAS;IAC1B,eAAe,EAAE,aAAa,CAAC;gBAEnB,EAAE,aAAoB,EAAE;;KAAA;CAQpC;AAaD,MAAM,WAAW,gBAAgB;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { GameEntity } from "../entities/entity";
|
|
2
|
-
import type { CollisionMask } from "./collision-mask";
|
|
3
|
-
export type NameSelector = string | string[] | RegExp;
|
|
4
|
-
export type CollisionSelector = {
|
|
5
|
-
name: NameSelector;
|
|
6
|
-
} | {
|
|
7
|
-
mask: CollisionMask | RegExp;
|
|
8
|
-
} | {
|
|
9
|
-
test: (other: GameEntity<any>) => boolean;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Returns true if the `other` entity matches the provided selector.
|
|
13
|
-
*/
|
|
14
|
-
export declare function matchesCollisionSelector(other: GameEntity<any>, selector?: CollisionSelector): boolean;
|
|
15
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/collision/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAC1B;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,OAAO,CAAA;CAAE,CAAC;AAEjD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CA0BtG"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { getOrCreateCollisionGroupId as o } from "./collision-builder.js";
|
|
2
|
-
function u(i, n) {
|
|
3
|
-
if (!n)
|
|
4
|
-
return !0;
|
|
5
|
-
const r = i.name ?? "";
|
|
6
|
-
if ("name" in n) {
|
|
7
|
-
const e = n.name;
|
|
8
|
-
return e instanceof RegExp ? e.test(r) : Array.isArray(e) ? e.some((t) => t === r) : r === e;
|
|
9
|
-
} else if ("mask" in n) {
|
|
10
|
-
const e = n.mask;
|
|
11
|
-
if (e instanceof RegExp) {
|
|
12
|
-
const t = i.collisionType ?? "";
|
|
13
|
-
return e.test(t);
|
|
14
|
-
} else {
|
|
15
|
-
const t = i.collisionType ?? "", s = o(t);
|
|
16
|
-
return (e & 1 << s) !== 0;
|
|
17
|
-
}
|
|
18
|
-
} else if ("test" in n)
|
|
19
|
-
return !!n.test(i);
|
|
20
|
-
return !0;
|
|
21
|
-
}
|
|
22
|
-
export {
|
|
23
|
-
u as matchesCollisionSelector
|
|
24
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Vector3 } from 'three';
|
|
2
|
-
import RAPIER, { World } from '@dimforge/rapier3d-compat';
|
|
3
|
-
import { Entity } from '../interfaces/entity';
|
|
4
|
-
import { UpdateContext } from '../core/base-node-life-cycle';
|
|
5
|
-
import { GameEntity } from '../entities/entity';
|
|
6
|
-
export declare class ZylemWorld implements Entity<ZylemWorld> {
|
|
7
|
-
type: string;
|
|
8
|
-
world: World;
|
|
9
|
-
collisionMap: Map<string, GameEntity<any>>;
|
|
10
|
-
collisionBehaviorMap: Map<string, GameEntity<any>>;
|
|
11
|
-
_removalMap: Map<string, GameEntity<any>>;
|
|
12
|
-
static loadPhysics(gravity: Vector3): Promise<RAPIER.World>;
|
|
13
|
-
constructor(world: World);
|
|
14
|
-
addEntity(entity: any): void;
|
|
15
|
-
setForRemoval(entity: any): void;
|
|
16
|
-
destroyEntity(entity: GameEntity<any>): void;
|
|
17
|
-
setup(): void;
|
|
18
|
-
update(params: UpdateContext<any>): void;
|
|
19
|
-
updatePostCollisionBehaviors(delta: number): void;
|
|
20
|
-
updateColliders(delta: number): void;
|
|
21
|
-
destroy(): void;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=world.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../../src/lib/collision/world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,qBAAa,UAAW,YAAW,MAAM,CAAC,UAAU,CAAC;IACpD,IAAI,SAAW;IACf,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAa;IACvD,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAa;IAC/D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAa;WAEzC,WAAW,CAAC,OAAO,EAAE,OAAO;gBAM7B,KAAK,EAAE,KAAK;IAIxB,SAAS,CAAC,MAAM,EAAE,GAAG;IAwBrB,aAAa,CAAC,MAAM,EAAE,GAAG;IAMzB,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC;IAWrC,KAAK;IAEL,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;IAUjC,4BAA4B,CAAC,KAAK,EAAE,MAAM;IAc1C,eAAe,CAAC,KAAK,EAAE,MAAM;IAwC7B,OAAO;CAaP"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import d from "@dimforge/rapier3d-compat";
|
|
2
|
-
import { state as c } from "../game/game-state.js";
|
|
3
|
-
import { ZylemActor as h } from "../entities/actor.js";
|
|
4
|
-
import { isCollisionHandlerDelegate as n } from "./collision-delegate.js";
|
|
5
|
-
class v {
|
|
6
|
-
type = "World";
|
|
7
|
-
world;
|
|
8
|
-
collisionMap = /* @__PURE__ */ new Map();
|
|
9
|
-
collisionBehaviorMap = /* @__PURE__ */ new Map();
|
|
10
|
-
_removalMap = /* @__PURE__ */ new Map();
|
|
11
|
-
static async loadPhysics(o) {
|
|
12
|
-
return await d.init(), new d.World(o);
|
|
13
|
-
}
|
|
14
|
-
constructor(o) {
|
|
15
|
-
this.world = o;
|
|
16
|
-
}
|
|
17
|
-
addEntity(o) {
|
|
18
|
-
const i = this.world.createRigidBody(o.bodyDesc);
|
|
19
|
-
o.body = i, o.body.userData = { uuid: o.uuid, ref: o }, this.world.gravity.x === 0 && this.world.gravity.y === 0 && this.world.gravity.z === 0 && (o.body.lockTranslations(!0, !0), o.body.lockRotations(!0, !0));
|
|
20
|
-
const e = this.world.createCollider(o.colliderDesc, o.body);
|
|
21
|
-
o.collider = e, (o.controlledRotation || o instanceof h) && (o.body.lockRotations(!0, !0), o.characterController = this.world.createCharacterController(0.01), o.characterController.setMaxSlopeClimbAngle(45 * Math.PI / 180), o.characterController.setMinSlopeSlideAngle(30 * Math.PI / 180), o.characterController.enableSnapToGround(0.01), o.characterController.setSlideEnabled(!0), o.characterController.setApplyImpulsesToDynamicBodies(!0), o.characterController.setCharacterMass(1)), this.collisionMap.set(o.uuid, o);
|
|
22
|
-
}
|
|
23
|
-
setForRemoval(o) {
|
|
24
|
-
o.body && this._removalMap.set(o.uuid, o);
|
|
25
|
-
}
|
|
26
|
-
destroyEntity(o) {
|
|
27
|
-
o.collider && this.world.removeCollider(o.collider, !0), o.body && (this.world.removeRigidBody(o.body), this.collisionMap.delete(o.uuid), this._removalMap.delete(o.uuid));
|
|
28
|
-
}
|
|
29
|
-
setup() {
|
|
30
|
-
}
|
|
31
|
-
update(o) {
|
|
32
|
-
const { delta: i } = o;
|
|
33
|
-
this.world && (this.updateColliders(i), this.updatePostCollisionBehaviors(i), this.world.step());
|
|
34
|
-
}
|
|
35
|
-
updatePostCollisionBehaviors(o) {
|
|
36
|
-
const i = this.collisionBehaviorMap;
|
|
37
|
-
for (let [e, a] of i) {
|
|
38
|
-
const r = a;
|
|
39
|
-
if (!n(r))
|
|
40
|
-
return;
|
|
41
|
-
r.handlePostCollision({ entity: r, delta: o }) || this.collisionBehaviorMap.delete(e);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
updateColliders(o) {
|
|
45
|
-
const i = this.collisionMap;
|
|
46
|
-
for (let [e, a] of i) {
|
|
47
|
-
const r = a;
|
|
48
|
-
if (r.body) {
|
|
49
|
-
if (this._removalMap.get(r.uuid)) {
|
|
50
|
-
this.destroyEntity(r);
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
this.world.contactsWith(r.body.collider(0), (t) => {
|
|
54
|
-
const s = t._parent.userData.uuid, l = i.get(s);
|
|
55
|
-
l && r._collision && r._collision(l, c.globals);
|
|
56
|
-
}), this.world.intersectionsWith(r.body.collider(0), (t) => {
|
|
57
|
-
const s = t._parent.userData.uuid, l = i.get(s);
|
|
58
|
-
l && (r._collision && r._collision(l, c.globals), n(l) && (l.handleIntersectionEvent({ entity: l, other: r, delta: o }), this.collisionBehaviorMap.set(s, l)));
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
destroy() {
|
|
64
|
-
try {
|
|
65
|
-
for (const [, o] of this.collisionMap)
|
|
66
|
-
try {
|
|
67
|
-
this.destroyEntity(o);
|
|
68
|
-
} catch {
|
|
69
|
-
}
|
|
70
|
-
this.collisionMap.clear(), this.collisionBehaviorMap.clear(), this._removalMap.clear(), this.world = void 0;
|
|
71
|
-
} catch {
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
export {
|
|
76
|
-
v as ZylemWorld
|
|
77
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/asset-manager.ts"],"names":[],"mappings":""}
|