@dcl/hammurabi-server 1.0.0-17268386187.commit-b609629
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/CLAUDE.md +90 -0
- package/LICENSE +201 -0
- package/README.md +125 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +79 -0
- package/dist/cli.js.map +1 -0
- package/dist/lib/babylon/avatar-rendering-system.d.ts +16 -0
- package/dist/lib/babylon/avatar-rendering-system.d.ts.map +1 -0
- package/dist/lib/babylon/avatar-rendering-system.js +96 -0
- package/dist/lib/babylon/avatar-rendering-system.js.map +1 -0
- package/dist/lib/babylon/avatars/AvatarRenderer.d.ts +40 -0
- package/dist/lib/babylon/avatars/AvatarRenderer.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/AvatarRenderer.js +260 -0
- package/dist/lib/babylon/avatars/AvatarRenderer.js.map +1 -0
- package/dist/lib/babylon/avatars/CharacterController.d.ts +88 -0
- package/dist/lib/babylon/avatars/CharacterController.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/CharacterController.js +463 -0
- package/dist/lib/babylon/avatars/CharacterController.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/body.d.ts +4 -0
- package/dist/lib/babylon/avatars/adr-65/body.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/body.js +47 -0
- package/dist/lib/babylon/avatars/adr-65/body.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/customizations.d.ts +11 -0
- package/dist/lib/babylon/avatars/adr-65/customizations.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/customizations.js +111 -0
- package/dist/lib/babylon/avatars/adr-65/customizations.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/emote.d.ts +9 -0
- package/dist/lib/babylon/avatars/adr-65/emote.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/emote.js +46 -0
- package/dist/lib/babylon/avatars/adr-65/emote.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/loader.d.ts +8 -0
- package/dist/lib/babylon/avatars/adr-65/loader.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/loader.js +54 -0
- package/dist/lib/babylon/avatars/adr-65/loader.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/representation.d.ts +12 -0
- package/dist/lib/babylon/avatars/adr-65/representation.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/representation.js +77 -0
- package/dist/lib/babylon/avatars/adr-65/representation.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/slots.d.ts +5 -0
- package/dist/lib/babylon/avatars/adr-65/slots.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/slots.js +62 -0
- package/dist/lib/babylon/avatars/adr-65/slots.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/types.d.ts +17 -0
- package/dist/lib/babylon/avatars/adr-65/types.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/types.js +3 -0
- package/dist/lib/babylon/avatars/adr-65/types.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/utils.d.ts +8 -0
- package/dist/lib/babylon/avatars/adr-65/utils.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/utils.js +29 -0
- package/dist/lib/babylon/avatars/adr-65/utils.js.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/wearable.d.ts +7 -0
- package/dist/lib/babylon/avatars/adr-65/wearable.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/adr-65/wearable.js +64 -0
- package/dist/lib/babylon/avatars/adr-65/wearable.js.map +1 -0
- package/dist/lib/babylon/avatars/avatar-asset-manager.d.ts +12 -0
- package/dist/lib/babylon/avatars/avatar-asset-manager.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/avatar-asset-manager.js +31 -0
- package/dist/lib/babylon/avatars/avatar-asset-manager.js.map +1 -0
- package/dist/lib/babylon/avatars/loader.d.ts +6 -0
- package/dist/lib/babylon/avatars/loader.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/loader.js +108 -0
- package/dist/lib/babylon/avatars/loader.js.map +1 -0
- package/dist/lib/babylon/avatars/urn.d.ts +2 -0
- package/dist/lib/babylon/avatars/urn.d.ts.map +1 -0
- package/dist/lib/babylon/avatars/urn.js +9 -0
- package/dist/lib/babylon/avatars/urn.js.map +1 -0
- package/dist/lib/babylon/index.d.ts +6 -0
- package/dist/lib/babylon/index.d.ts.map +1 -0
- package/dist/lib/babylon/index.js +85 -0
- package/dist/lib/babylon/index.js.map +1 -0
- package/dist/lib/babylon/input.d.ts +35 -0
- package/dist/lib/babylon/input.d.ts.map +1 -0
- package/dist/lib/babylon/input.js +137 -0
- package/dist/lib/babylon/input.js.map +1 -0
- package/dist/lib/babylon/scene/AssetManager.d.ts +19 -0
- package/dist/lib/babylon/scene/AssetManager.d.ts.map +1 -0
- package/dist/lib/babylon/scene/AssetManager.js +271 -0
- package/dist/lib/babylon/scene/AssetManager.js.map +1 -0
- package/dist/lib/babylon/scene/BabylonEntity.d.ts +84 -0
- package/dist/lib/babylon/scene/BabylonEntity.d.ts.map +1 -0
- package/dist/lib/babylon/scene/BabylonEntity.js +174 -0
- package/dist/lib/babylon/scene/BabylonEntity.js.map +1 -0
- package/dist/lib/babylon/scene/connect-context-rpc.d.ts +8 -0
- package/dist/lib/babylon/scene/connect-context-rpc.d.ts.map +1 -0
- package/dist/lib/babylon/scene/connect-context-rpc.js +210 -0
- package/dist/lib/babylon/scene/connect-context-rpc.js.map +1 -0
- package/dist/lib/babylon/scene/coordinates.d.ts +5 -0
- package/dist/lib/babylon/scene/coordinates.d.ts.map +1 -0
- package/dist/lib/babylon/scene/coordinates.js +17 -0
- package/dist/lib/babylon/scene/coordinates.js.map +1 -0
- package/dist/lib/babylon/scene/hot-reload.d.ts +9 -0
- package/dist/lib/babylon/scene/hot-reload.d.ts.map +1 -0
- package/dist/lib/babylon/scene/hot-reload.js +65 -0
- package/dist/lib/babylon/scene/hot-reload.js.map +1 -0
- package/dist/lib/babylon/scene/load.d.ts +54 -0
- package/dist/lib/babylon/scene/load.d.ts.map +1 -0
- package/dist/lib/babylon/scene/load.js +154 -0
- package/dist/lib/babylon/scene/load.js.map +1 -0
- package/dist/lib/babylon/scene/logic/apply-animations.d.ts +3 -0
- package/dist/lib/babylon/scene/logic/apply-animations.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/apply-animations.js +50 -0
- package/dist/lib/babylon/scene/logic/apply-animations.js.map +1 -0
- package/dist/lib/babylon/scene/logic/billboards.d.ts +3 -0
- package/dist/lib/babylon/scene/logic/billboards.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/billboards.js +12 -0
- package/dist/lib/babylon/scene/logic/billboards.js.map +1 -0
- package/dist/lib/babylon/scene/logic/camera-follows-player.d.ts +7 -0
- package/dist/lib/babylon/scene/logic/camera-follows-player.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/camera-follows-player.js +35 -0
- package/dist/lib/babylon/scene/logic/camera-follows-player.js.map +1 -0
- package/dist/lib/babylon/scene/logic/colliders.d.ts +9 -0
- package/dist/lib/babylon/scene/logic/colliders.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/colliders.js +79 -0
- package/dist/lib/babylon/scene/logic/colliders.js.map +1 -0
- package/dist/lib/babylon/scene/logic/cyclic-transform.d.ts +12 -0
- package/dist/lib/babylon/scene/logic/cyclic-transform.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/cyclic-transform.js +67 -0
- package/dist/lib/babylon/scene/logic/cyclic-transform.js.map +1 -0
- package/dist/lib/babylon/scene/logic/delayed-interpolation.d.ts +27 -0
- package/dist/lib/babylon/scene/logic/delayed-interpolation.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/delayed-interpolation.js +49 -0
- package/dist/lib/babylon/scene/logic/delayed-interpolation.js.map +1 -0
- package/dist/lib/babylon/scene/logic/easings.d.ts +7 -0
- package/dist/lib/babylon/scene/logic/easings.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/easings.js +100 -0
- package/dist/lib/babylon/scene/logic/easings.js.map +1 -0
- package/dist/lib/babylon/scene/logic/hide-camera-obstuction-system.d.ts +5 -0
- package/dist/lib/babylon/scene/logic/hide-camera-obstuction-system.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/hide-camera-obstuction-system.js +145 -0
- package/dist/lib/babylon/scene/logic/hide-camera-obstuction-system.js.map +1 -0
- package/dist/lib/babylon/scene/logic/local-avatar-scene.d.ts +10 -0
- package/dist/lib/babylon/scene/logic/local-avatar-scene.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/local-avatar-scene.js +50 -0
- package/dist/lib/babylon/scene/logic/local-avatar-scene.js.map +1 -0
- package/dist/lib/babylon/scene/logic/pointer-events.d.ts +12 -0
- package/dist/lib/babylon/scene/logic/pointer-events.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/pointer-events.js +199 -0
- package/dist/lib/babylon/scene/logic/pointer-events.js.map +1 -0
- package/dist/lib/babylon/scene/logic/raycasts.d.ts +21 -0
- package/dist/lib/babylon/scene/logic/raycasts.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/raycasts.js +142 -0
- package/dist/lib/babylon/scene/logic/raycasts.js.map +1 -0
- package/dist/lib/babylon/scene/logic/static-entities.d.ts +18 -0
- package/dist/lib/babylon/scene/logic/static-entities.d.ts.map +1 -0
- package/dist/lib/babylon/scene/logic/static-entities.js +64 -0
- package/dist/lib/babylon/scene/logic/static-entities.js.map +1 -0
- package/dist/lib/babylon/scene/nodejs-runtime.d.ts +4 -0
- package/dist/lib/babylon/scene/nodejs-runtime.d.ts.map +1 -0
- package/dist/lib/babylon/scene/nodejs-runtime.js +100 -0
- package/dist/lib/babylon/scene/nodejs-runtime.js.map +1 -0
- package/dist/lib/babylon/scene/scene-context.d.ts +116 -0
- package/dist/lib/babylon/scene/scene-context.d.ts.map +1 -0
- package/dist/lib/babylon/scene/scene-context.js +492 -0
- package/dist/lib/babylon/scene/scene-context.js.map +1 -0
- package/dist/lib/babylon/scene/scene-culling.d.ts +6 -0
- package/dist/lib/babylon/scene/scene-culling.d.ts.map +1 -0
- package/dist/lib/babylon/scene/scene-culling.js +23 -0
- package/dist/lib/babylon/scene/scene-culling.js.map +1 -0
- package/dist/lib/babylon/scene/update-scheduler.d.ts +7 -0
- package/dist/lib/babylon/scene/update-scheduler.d.ts.map +1 -0
- package/dist/lib/babylon/scene/update-scheduler.js +40 -0
- package/dist/lib/babylon/scene/update-scheduler.js.map +1 -0
- package/dist/lib/babylon/time-based-animation.d.ts +13 -0
- package/dist/lib/babylon/time-based-animation.d.ts.map +1 -0
- package/dist/lib/babylon/time-based-animation.js +35 -0
- package/dist/lib/babylon/time-based-animation.js.map +1 -0
- package/dist/lib/babylon/visual/ambientLights.d.ts +6 -0
- package/dist/lib/babylon/visual/ambientLights.d.ts.map +1 -0
- package/dist/lib/babylon/visual/ambientLights.js +65 -0
- package/dist/lib/babylon/visual/ambientLights.js.map +1 -0
- package/dist/lib/babylon/visual/glowLayer.d.ts +6 -0
- package/dist/lib/babylon/visual/glowLayer.d.ts.map +1 -0
- package/dist/lib/babylon/visual/glowLayer.js +59 -0
- package/dist/lib/babylon/visual/glowLayer.js.map +1 -0
- package/dist/lib/babylon/visual/parcelOutline.d.ts +7 -0
- package/dist/lib/babylon/visual/parcelOutline.d.ts.map +1 -0
- package/dist/lib/babylon/visual/parcelOutline.js +88 -0
- package/dist/lib/babylon/visual/parcelOutline.js.map +1 -0
- package/dist/lib/babylon/visual/reticle.d.ts +3 -0
- package/dist/lib/babylon/visual/reticle.d.ts.map +1 -0
- package/dist/lib/babylon/visual/reticle.js +60 -0
- package/dist/lib/babylon/visual/reticle.js.map +1 -0
- package/dist/lib/babylon/visual/ui.d.ts +8 -0
- package/dist/lib/babylon/visual/ui.d.ts.map +1 -0
- package/dist/lib/babylon/visual/ui.js +54 -0
- package/dist/lib/babylon/visual/ui.js.map +1 -0
- package/dist/lib/common-runtime/game-loop.d.ts +4 -0
- package/dist/lib/common-runtime/game-loop.d.ts.map +1 -0
- package/dist/lib/common-runtime/game-loop.js +31 -0
- package/dist/lib/common-runtime/game-loop.js.map +1 -0
- package/dist/lib/common-runtime/modules.d.ts +244 -0
- package/dist/lib/common-runtime/modules.d.ts.map +1 -0
- package/dist/lib/common-runtime/modules.js +74 -0
- package/dist/lib/common-runtime/modules.js.map +1 -0
- package/dist/lib/common-runtime/startup.d.ts +8 -0
- package/dist/lib/common-runtime/startup.d.ts.map +1 -0
- package/dist/lib/common-runtime/startup.js +45 -0
- package/dist/lib/common-runtime/startup.js.map +1 -0
- package/dist/lib/common-runtime/types.d.ts +15 -0
- package/dist/lib/common-runtime/types.d.ts.map +1 -0
- package/dist/lib/common-runtime/types.js +7 -0
- package/dist/lib/common-runtime/types.js.map +1 -0
- package/dist/lib/decentraland/ByteBuffer/index.d.ts +75 -0
- package/dist/lib/decentraland/ByteBuffer/index.d.ts.map +1 -0
- package/dist/lib/decentraland/ByteBuffer/index.js +279 -0
- package/dist/lib/decentraland/ByteBuffer/index.js.map +1 -0
- package/dist/lib/decentraland/ByteBuffer/types.d.ts +109 -0
- package/dist/lib/decentraland/ByteBuffer/types.d.ts.map +1 -0
- package/dist/lib/decentraland/ByteBuffer/types.js +3 -0
- package/dist/lib/decentraland/ByteBuffer/types.js.map +1 -0
- package/dist/lib/decentraland/communications/CommsTransportWrapper.d.ts +45 -0
- package/dist/lib/decentraland/communications/CommsTransportWrapper.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/CommsTransportWrapper.js +174 -0
- package/dist/lib/decentraland/communications/CommsTransportWrapper.js.map +1 -0
- package/dist/lib/decentraland/communications/avatar-communication-system.d.ts +18 -0
- package/dist/lib/decentraland/communications/avatar-communication-system.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/avatar-communication-system.js +203 -0
- package/dist/lib/decentraland/communications/avatar-communication-system.js.map +1 -0
- package/dist/lib/decentraland/communications/connect-adapter.d.ts +5 -0
- package/dist/lib/decentraland/communications/connect-adapter.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/connect-adapter.js +110 -0
- package/dist/lib/decentraland/communications/connect-adapter.js.map +1 -0
- package/dist/lib/decentraland/communications/connect-transport.d.ts +5 -0
- package/dist/lib/decentraland/communications/connect-transport.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/connect-transport.js +32 -0
- package/dist/lib/decentraland/communications/connect-transport.js.map +1 -0
- package/dist/lib/decentraland/communications/networked-profile-system.d.ts +10 -0
- package/dist/lib/decentraland/communications/networked-profile-system.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/networked-profile-system.js +73 -0
- package/dist/lib/decentraland/communications/networked-profile-system.js.map +1 -0
- package/dist/lib/decentraland/communications/player-entity-manager.d.ts +55 -0
- package/dist/lib/decentraland/communications/player-entity-manager.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/player-entity-manager.js +167 -0
- package/dist/lib/decentraland/communications/player-entity-manager.js.map +1 -0
- package/dist/lib/decentraland/communications/position-report-system.d.ts +8 -0
- package/dist/lib/decentraland/communications/position-report-system.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/position-report-system.js +51 -0
- package/dist/lib/decentraland/communications/position-report-system.js.map +1 -0
- package/dist/lib/decentraland/communications/realm-communications-system.d.ts +17 -0
- package/dist/lib/decentraland/communications/realm-communications-system.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/realm-communications-system.js +111 -0
- package/dist/lib/decentraland/communications/realm-communications-system.js.map +1 -0
- package/dist/lib/decentraland/communications/scene-comms.d.ts +9 -0
- package/dist/lib/decentraland/communications/scene-comms.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/scene-comms.js +20 -0
- package/dist/lib/decentraland/communications/scene-comms.js.map +1 -0
- package/dist/lib/decentraland/communications/transports/livekit.d.ts +27 -0
- package/dist/lib/decentraland/communications/transports/livekit.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/transports/livekit.js +135 -0
- package/dist/lib/decentraland/communications/transports/livekit.js.map +1 -0
- package/dist/lib/decentraland/communications/transports/ws-room.d.ts +26 -0
- package/dist/lib/decentraland/communications/transports/ws-room.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/transports/ws-room.js +235 -0
- package/dist/lib/decentraland/communications/transports/ws-room.js.map +1 -0
- package/dist/lib/decentraland/communications/types.d.ts +76 -0
- package/dist/lib/decentraland/communications/types.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/types.js +6 -0
- package/dist/lib/decentraland/communications/types.js.map +1 -0
- package/dist/lib/decentraland/communications/ws-async-channel.d.ts +6 -0
- package/dist/lib/decentraland/communications/ws-async-channel.d.ts.map +1 -0
- package/dist/lib/decentraland/communications/ws-async-channel.js +52 -0
- package/dist/lib/decentraland/communications/ws-async-channel.js.map +1 -0
- package/dist/lib/decentraland/crdt-internal/components.d.ts +156 -0
- package/dist/lib/decentraland/crdt-internal/components.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-internal/components.js +8 -0
- package/dist/lib/decentraland/crdt-internal/components.js.map +1 -0
- package/dist/lib/decentraland/crdt-internal/conflict-resolution.d.ts +45 -0
- package/dist/lib/decentraland/crdt-internal/conflict-resolution.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-internal/conflict-resolution.js +49 -0
- package/dist/lib/decentraland/crdt-internal/conflict-resolution.js.map +1 -0
- package/dist/lib/decentraland/crdt-internal/dataCompare.d.ts +6 -0
- package/dist/lib/decentraland/crdt-internal/dataCompare.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-internal/dataCompare.js +34 -0
- package/dist/lib/decentraland/crdt-internal/dataCompare.js.map +1 -0
- package/dist/lib/decentraland/crdt-internal/generational-index-pool.d.ts +22 -0
- package/dist/lib/decentraland/crdt-internal/generational-index-pool.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-internal/generational-index-pool.js +91 -0
- package/dist/lib/decentraland/crdt-internal/generational-index-pool.js.map +1 -0
- package/dist/lib/decentraland/crdt-internal/grow-only-set.d.ts +10 -0
- package/dist/lib/decentraland/crdt-internal/grow-only-set.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-internal/grow-only-set.js +129 -0
- package/dist/lib/decentraland/crdt-internal/grow-only-set.js.map +1 -0
- package/dist/lib/decentraland/crdt-internal/last-write-win-element-set.d.ts +11 -0
- package/dist/lib/decentraland/crdt-internal/last-write-win-element-set.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-internal/last-write-win-element-set.js +224 -0
- package/dist/lib/decentraland/crdt-internal/last-write-win-element-set.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/appendValue.d.ts +15 -0
- package/dist/lib/decentraland/crdt-wire-protocol/appendValue.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/appendValue.js +50 -0
- package/dist/lib/decentraland/crdt-wire-protocol/appendValue.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/crdtMessageProtocol.d.ts +31 -0
- package/dist/lib/decentraland/crdt-wire-protocol/crdtMessageProtocol.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/crdtMessageProtocol.js +72 -0
- package/dist/lib/decentraland/crdt-wire-protocol/crdtMessageProtocol.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/deleteComponent.d.ts +14 -0
- package/dist/lib/decentraland/crdt-wire-protocol/deleteComponent.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/deleteComponent.js +44 -0
- package/dist/lib/decentraland/crdt-wire-protocol/deleteComponent.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/deleteEntity.d.ts +11 -0
- package/dist/lib/decentraland/crdt-wire-protocol/deleteEntity.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/deleteEntity.js +35 -0
- package/dist/lib/decentraland/crdt-wire-protocol/deleteEntity.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/index.d.ts +8 -0
- package/dist/lib/decentraland/crdt-wire-protocol/index.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/index.js +24 -0
- package/dist/lib/decentraland/crdt-wire-protocol/index.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/message.d.ts +17 -0
- package/dist/lib/decentraland/crdt-wire-protocol/message.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/message.js +49 -0
- package/dist/lib/decentraland/crdt-wire-protocol/message.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/prettyPrint.d.ts +4 -0
- package/dist/lib/decentraland/crdt-wire-protocol/prettyPrint.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/prettyPrint.js +26 -0
- package/dist/lib/decentraland/crdt-wire-protocol/prettyPrint.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/putComponent.d.ts +15 -0
- package/dist/lib/decentraland/crdt-wire-protocol/putComponent.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/putComponent.js +48 -0
- package/dist/lib/decentraland/crdt-wire-protocol/putComponent.js.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/types.d.ts +80 -0
- package/dist/lib/decentraland/crdt-wire-protocol/types.d.ts.map +1 -0
- package/dist/lib/decentraland/crdt-wire-protocol/types.js +15 -0
- package/dist/lib/decentraland/crdt-wire-protocol/types.js.map +1 -0
- package/dist/lib/decentraland/identifiers.d.ts +6 -0
- package/dist/lib/decentraland/identifiers.d.ts.map +1 -0
- package/dist/lib/decentraland/identifiers.js +22 -0
- package/dist/lib/decentraland/identifiers.js.map +1 -0
- package/dist/lib/decentraland/identity/avatar.d.ts +4 -0
- package/dist/lib/decentraland/identity/avatar.d.ts.map +1 -0
- package/dist/lib/decentraland/identity/avatar.js +57 -0
- package/dist/lib/decentraland/identity/avatar.js.map +1 -0
- package/dist/lib/decentraland/identity/login.d.ts +8 -0
- package/dist/lib/decentraland/identity/login.d.ts.map +1 -0
- package/dist/lib/decentraland/identity/login.js +121 -0
- package/dist/lib/decentraland/identity/login.js.map +1 -0
- package/dist/lib/decentraland/identity/signed-fetch.d.ts +17 -0
- package/dist/lib/decentraland/identity/signed-fetch.d.ts.map +1 -0
- package/dist/lib/decentraland/identity/signed-fetch.js +47 -0
- package/dist/lib/decentraland/identity/signed-fetch.js.map +1 -0
- package/dist/lib/decentraland/identity/types.d.ts +11 -0
- package/dist/lib/decentraland/identity/types.d.ts.map +1 -0
- package/dist/lib/decentraland/identity/types.js +3 -0
- package/dist/lib/decentraland/identity/types.js.map +1 -0
- package/dist/lib/decentraland/positions.d.ts +15 -0
- package/dist/lib/decentraland/positions.d.ts.map +1 -0
- package/dist/lib/decentraland/positions.js +40 -0
- package/dist/lib/decentraland/positions.js.map +1 -0
- package/dist/lib/decentraland/realm/resolution.d.ts +2 -0
- package/dist/lib/decentraland/realm/resolution.d.ts.map +1 -0
- package/dist/lib/decentraland/realm/resolution.js +39 -0
- package/dist/lib/decentraland/realm/resolution.js.map +1 -0
- package/dist/lib/decentraland/scene/content-server-entity.d.ts +34 -0
- package/dist/lib/decentraland/scene/content-server-entity.d.ts.map +1 -0
- package/dist/lib/decentraland/scene/content-server-entity.js +22 -0
- package/dist/lib/decentraland/scene/content-server-entity.js.map +1 -0
- package/dist/lib/decentraland/scene/spawn-points.d.ts +16 -0
- package/dist/lib/decentraland/scene/spawn-points.d.ts.map +1 -0
- package/dist/lib/decentraland/scene/spawn-points.js +78 -0
- package/dist/lib/decentraland/scene/spawn-points.js.map +1 -0
- package/dist/lib/decentraland/scene/types.d.ts +38 -0
- package/dist/lib/decentraland/scene/types.d.ts.map +1 -0
- package/dist/lib/decentraland/scene/types.js +3 -0
- package/dist/lib/decentraland/scene/types.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/animator-component.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/animator-component.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/animator-component.js +12 -0
- package/dist/lib/decentraland/sdk-components/animator-component.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/avatar-base.d.ts +5 -0
- package/dist/lib/decentraland/sdk-components/avatar-base.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/avatar-base.js +40 -0
- package/dist/lib/decentraland/sdk-components/avatar-base.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/avatar-customizations.d.ts +5 -0
- package/dist/lib/decentraland/sdk-components/avatar-customizations.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/avatar-customizations.js +9 -0
- package/dist/lib/decentraland/sdk-components/avatar-customizations.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/avatar-shape.d.ts +5 -0
- package/dist/lib/decentraland/sdk-components/avatar-shape.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/avatar-shape.js +33 -0
- package/dist/lib/decentraland/sdk-components/avatar-shape.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/billboard-component.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/billboard-component.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/billboard-component.js +15 -0
- package/dist/lib/decentraland/sdk-components/billboard-component.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/delayed-interpolation.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/delayed-interpolation.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/delayed-interpolation.js +15 -0
- package/dist/lib/decentraland/sdk-components/delayed-interpolation.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/engine-info.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/engine-info.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/engine-info.js +7 -0
- package/dist/lib/decentraland/sdk-components/engine-info.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/gltf-component.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/gltf-component.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/gltf-component.js +114 -0
- package/dist/lib/decentraland/sdk-components/gltf-component.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/gltf-loading-state.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/gltf-loading-state.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/gltf-loading-state.js +7 -0
- package/dist/lib/decentraland/sdk-components/gltf-loading-state.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/material-component.d.ts +5 -0
- package/dist/lib/decentraland/sdk-components/material-component.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/material-component.js +92 -0
- package/dist/lib/decentraland/sdk-components/material-component.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/mesh-collider-component.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/mesh-collider-component.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/mesh-collider-component.js +37 -0
- package/dist/lib/decentraland/sdk-components/mesh-collider-component.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/mesh-renderer-component.d.ts +5 -0
- package/dist/lib/decentraland/sdk-components/mesh-renderer-component.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/mesh-renderer-component.js +111 -0
- package/dist/lib/decentraland/sdk-components/mesh-renderer-component.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/pb-based-component-helper.d.ts +10 -0
- package/dist/lib/decentraland/sdk-components/pb-based-component-helper.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/pb-based-component-helper.js +23 -0
- package/dist/lib/decentraland/sdk-components/pb-based-component-helper.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/player-identity-data.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/player-identity-data.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/player-identity-data.js +7 -0
- package/dist/lib/decentraland/sdk-components/player-identity-data.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/pointer-events-result.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/pointer-events-result.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/pointer-events-result.js +7 -0
- package/dist/lib/decentraland/sdk-components/pointer-events-result.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/pointer-events.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/pointer-events.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/pointer-events.js +15 -0
- package/dist/lib/decentraland/sdk-components/pointer-events.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/raycast-component.d.ts +5 -0
- package/dist/lib/decentraland/sdk-components/raycast-component.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/raycast-component.js +66 -0
- package/dist/lib/decentraland/sdk-components/raycast-component.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/transform-component.d.ts +13 -0
- package/dist/lib/decentraland/sdk-components/transform-component.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/transform-component.js +84 -0
- package/dist/lib/decentraland/sdk-components/transform-component.js.map +1 -0
- package/dist/lib/decentraland/sdk-components/tween.d.ts +3 -0
- package/dist/lib/decentraland/sdk-components/tween.d.ts.map +1 -0
- package/dist/lib/decentraland/sdk-components/tween.js +15 -0
- package/dist/lib/decentraland/sdk-components/tween.js.map +1 -0
- package/dist/lib/decentraland/state.d.ts +24 -0
- package/dist/lib/decentraland/state.d.ts.map +1 -0
- package/dist/lib/decentraland/state.js +16 -0
- package/dist/lib/decentraland/state.js.map +1 -0
- package/dist/lib/decentraland/system.d.ts +7 -0
- package/dist/lib/decentraland/system.d.ts.map +1 -0
- package/dist/lib/decentraland/system.js +13 -0
- package/dist/lib/decentraland/system.js.map +1 -0
- package/dist/lib/decentraland/types.d.ts +9 -0
- package/dist/lib/decentraland/types.d.ts.map +1 -0
- package/dist/lib/decentraland/types.js +3 -0
- package/dist/lib/decentraland/types.js.map +1 -0
- package/dist/lib/decentraland/virtual-scene.d.ts +12 -0
- package/dist/lib/decentraland/virtual-scene.d.ts.map +1 -0
- package/dist/lib/decentraland/virtual-scene.js +3 -0
- package/dist/lib/decentraland/virtual-scene.js.map +1 -0
- package/dist/lib/engine-main.d.ts +8 -0
- package/dist/lib/engine-main.d.ts.map +1 -0
- package/dist/lib/engine-main.js +103 -0
- package/dist/lib/engine-main.js.map +1 -0
- package/dist/lib/misc/atom.d.ts +13 -0
- package/dist/lib/misc/atom.d.ts.map +1 -0
- package/dist/lib/misc/atom.js +66 -0
- package/dist/lib/misc/atom.js.map +1 -0
- package/dist/lib/misc/bit-operations.d.ts +3 -0
- package/dist/lib/misc/bit-operations.d.ts.map +1 -0
- package/dist/lib/misc/bit-operations.js +14 -0
- package/dist/lib/misc/bit-operations.js.map +1 -0
- package/dist/lib/misc/flat-fetch.d.ts +16 -0
- package/dist/lib/misc/flat-fetch.d.ts.map +1 -0
- package/dist/lib/misc/flat-fetch.js +26 -0
- package/dist/lib/misc/flat-fetch.js.map +1 -0
- package/dist/lib/misc/json.d.ts +3 -0
- package/dist/lib/misc/json.d.ts.map +1 -0
- package/dist/lib/misc/json.js +24 -0
- package/dist/lib/misc/json.js.map +1 -0
- package/dist/lib/misc/logger.d.ts +6 -0
- package/dist/lib/misc/logger.d.ts.map +1 -0
- package/dist/lib/misc/logger.js +24 -0
- package/dist/lib/misc/logger.js.map +1 -0
- package/dist/lib/misc/memoize.d.ts +2 -0
- package/dist/lib/misc/memoize.d.ts.map +1 -0
- package/dist/lib/misc/memoize.js +16 -0
- package/dist/lib/misc/memoize.js.map +1 -0
- package/dist/lib/misc/promises.d.ts +3 -0
- package/dist/lib/misc/promises.d.ts.map +1 -0
- package/dist/lib/misc/promises.js +14 -0
- package/dist/lib/misc/promises.js.map +1 -0
- package/dist/lib/polyfills/xmlhttprequest.d.ts +6 -0
- package/dist/lib/polyfills/xmlhttprequest.d.ts.map +1 -0
- package/dist/lib/polyfills/xmlhttprequest.js +127 -0
- package/dist/lib/polyfills/xmlhttprequest.js.map +1 -0
- package/dist/lib/quick-js/convert-handles.d.ts +14 -0
- package/dist/lib/quick-js/convert-handles.d.ts.map +1 -0
- package/dist/lib/quick-js/convert-handles.js +83 -0
- package/dist/lib/quick-js/convert-handles.js.map +1 -0
- package/dist/lib/quick-js/index.d.ts +12 -0
- package/dist/lib/quick-js/index.d.ts.map +1 -0
- package/dist/lib/quick-js/index.js +159 -0
- package/dist/lib/quick-js/index.js.map +1 -0
- package/dist/lib/quick-js/rpc-scene-runtime.d.ts +13 -0
- package/dist/lib/quick-js/rpc-scene-runtime.d.ts.map +1 -0
- package/dist/lib/quick-js/rpc-scene-runtime.js +32 -0
- package/dist/lib/quick-js/rpc-scene-runtime.js.map +1 -0
- package/dist/lib/quick-js/types.d.ts +35 -0
- package/dist/lib/quick-js/types.d.ts.map +1 -0
- package/dist/lib/quick-js/types.js +3 -0
- package/dist/lib/quick-js/types.js.map +1 -0
- package/dist/lib/web-worker-runtime/context.d.ts +12 -0
- package/dist/lib/web-worker-runtime/context.d.ts.map +1 -0
- package/dist/lib/web-worker-runtime/context.js +97 -0
- package/dist/lib/web-worker-runtime/context.js.map +1 -0
- package/dist/lib/web-worker-runtime/sandbox.d.ts +9 -0
- package/dist/lib/web-worker-runtime/sandbox.d.ts.map +1 -0
- package/dist/lib/web-worker-runtime/sandbox.js +98 -0
- package/dist/lib/web-worker-runtime/sandbox.js.map +1 -0
- package/dist/lib/web-worker-runtime/web-worker-scene-runtime.d.ts +13 -0
- package/dist/lib/web-worker-runtime/web-worker-scene-runtime.d.ts.map +1 -0
- package/dist/lib/web-worker-runtime/web-worker-scene-runtime.js +32 -0
- package/dist/lib/web-worker-runtime/web-worker-scene-runtime.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidBillboardCombination = void 0;
|
|
4
|
+
const billboard_gen_1 = require("@dcl/protocol/out-js/decentraland/sdk/components/billboard.gen");
|
|
5
|
+
function isValidBillboardCombination(billboardMode) {
|
|
6
|
+
return (billboardMode == billboard_gen_1.BillboardMode.BM_NONE ||
|
|
7
|
+
billboardMode == billboard_gen_1.BillboardMode.BM_Y ||
|
|
8
|
+
billboardMode == (billboard_gen_1.BillboardMode.BM_Y | billboard_gen_1.BillboardMode.BM_X) ||
|
|
9
|
+
billboardMode == billboard_gen_1.BillboardMode.BM_ALL);
|
|
10
|
+
}
|
|
11
|
+
exports.isValidBillboardCombination = isValidBillboardCombination;
|
|
12
|
+
//# sourceMappingURL=billboards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billboards.js","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/billboards.ts"],"names":[],"mappings":";;;AAAA,kGAA+F;AAE/F,SAAgB,2BAA2B,CAAC,aAA4B;IACtE,OAAO,CACL,aAAa,IAAI,6BAAa,CAAC,OAAO;QACtC,aAAa,IAAI,6BAAa,CAAC,IAAI;QACnC,aAAa,IAAI,CAAC,6BAAa,CAAC,IAAI,GAAG,6BAAa,CAAC,IAAI,CAAC;QAC1D,aAAa,IAAI,6BAAa,CAAC,MAAM,CACtC,CAAA;AACH,CAAC;AAPD,kEAOC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ArcRotateCamera } from "@babylonjs/core";
|
|
2
|
+
import { CharacterController } from "../../avatars/CharacterController";
|
|
3
|
+
import { BabylonEntity } from "../BabylonEntity";
|
|
4
|
+
export declare function createCameraFollowsPlayerSystem(camera: ArcRotateCamera, playerEntity: BabylonEntity, characterController: CharacterController): {
|
|
5
|
+
update(): void;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=camera-follows-player.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera-follows-player.d.ts","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/camera-follows-player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA0B,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB;;EAiC7I"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCameraFollowsPlayerSystem = void 0;
|
|
4
|
+
const core_1 = require("@babylonjs/core");
|
|
5
|
+
const static_entities_1 = require("./static-entities");
|
|
6
|
+
const transform_component_1 = require("../../../decentraland/sdk-components/transform-component");
|
|
7
|
+
function createCameraFollowsPlayerSystem(camera, playerEntity, characterController) {
|
|
8
|
+
// this function updates the PlayerEntity position using the CharacterController.capsule's position
|
|
9
|
+
function updatePlayerEntityPositionFromCapsule(playerEntity, capsule) {
|
|
10
|
+
const pos = capsule.absolutePosition.clone();
|
|
11
|
+
pos.y -= 1; // don't know why
|
|
12
|
+
const t = {
|
|
13
|
+
parent: static_entities_1.StaticEntities.RootEntity,
|
|
14
|
+
position: pos,
|
|
15
|
+
rotation: capsule.absoluteRotationQuaternion,
|
|
16
|
+
scale: core_1.Vector3.One(),
|
|
17
|
+
};
|
|
18
|
+
const localAvatarScene = playerEntity.context.deref();
|
|
19
|
+
localAvatarScene.components[transform_component_1.transformComponent.componentId].createOrReplace(static_entities_1.StaticEntities.PlayerEntity, t);
|
|
20
|
+
(0, transform_component_1.applyNewTransform)(playerEntity, t);
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
update() {
|
|
24
|
+
updatePlayerEntityPositionFromCapsule(playerEntity, characterController.capsule);
|
|
25
|
+
// IMPORTANT: This logic is truncated, there are many protocol defined factors
|
|
26
|
+
// playing with the visibility of the player. Those will be implemented in a future
|
|
27
|
+
// PR along with the avatar attachment components of the SDK
|
|
28
|
+
const playerVisible = !characterController.inFirstPerson;
|
|
29
|
+
playerEntity.setEnabled(playerVisible);
|
|
30
|
+
playerEntity.absolutePosition.addToRef(new core_1.Vector3(0, static_entities_1.PLAYER_HEIGHT, 0), camera.target);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
exports.createCameraFollowsPlayerSystem = createCameraFollowsPlayerSystem;
|
|
35
|
+
//# sourceMappingURL=camera-follows-player.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera-follows-player.js","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/camera-follows-player.ts"],"names":[],"mappings":";;;AAAA,0CAA0E;AAC1E,uDAAkE;AAGlE,kGAA4H;AAE5H,SAAgB,+BAA+B,CAAC,MAAuB,EAAE,YAA2B,EAAE,mBAAwC;IAE5I,mGAAmG;IACnG,SAAS,qCAAqC,CAAC,YAA2B,EAAE,OAAsB;QAChG,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;QAC5C,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,iBAAiB;QAE5B,MAAM,CAAC,GAAc;YACnB,MAAM,EAAE,gCAAc,CAAC,UAAU;YACjC,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,OAAO,CAAC,0BAA0B;YAC5C,KAAK,EAAE,cAAO,CAAC,GAAG,EAAE;SACrB,CAAA;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAG,CAAA;QAEtD,gBAAgB,CAAC,UAAU,CAAC,wCAAkB,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,gCAAc,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;QAC3G,IAAA,uCAAiB,EAAC,YAAY,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC;IAED,OAAO;QACL,MAAM;YACJ,qCAAqC,CAAC,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAEhF,8EAA8E;YAC9E,mFAAmF;YACnF,4DAA4D;YAC5D,MAAM,aAAa,GAAG,CAAC,mBAAmB,CAAC,aAAa,CAAA;YAExD,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;YACtC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,cAAO,CAAC,CAAC,EAAE,+BAAa,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1F,CAAC;KACF,CAAA;AACH,CAAC;AAjCD,0EAiCC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AbstractMesh, Scene } from '@babylonjs/core';
|
|
2
|
+
import { GridMaterial } from '@babylonjs/materials';
|
|
3
|
+
import { BabylonEntity } from '../BabylonEntity';
|
|
4
|
+
export declare const floorMeshes: AbstractMesh[];
|
|
5
|
+
export declare const colliderMaterial: (a: Scene) => GridMaterial;
|
|
6
|
+
export declare function setColliderMask(mesh: AbstractMesh, layers: number): void;
|
|
7
|
+
export declare function getColliderLayers(mesh: AbstractMesh): number;
|
|
8
|
+
export declare function pickMeshesForMask(entity: BabylonEntity, mask: number): Iterable<AbstractMesh>;
|
|
9
|
+
//# sourceMappingURL=colliders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colliders.d.ts","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/colliders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAIhD,eAAO,MAAM,WAAW,EAAE,YAAY,EAAO,CAAA;AAI7C,eAAO,MAAM,gBAAgB,4BA6B3B,CAAA;AAGF,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAiBjE;AASD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAE5D;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAQ7F"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pickMeshesForMask = exports.getColliderLayers = exports.setColliderMask = exports.colliderMaterial = exports.floorMeshes = void 0;
|
|
4
|
+
const core_1 = require("@babylonjs/core");
|
|
5
|
+
const materials_1 = require("@babylonjs/materials");
|
|
6
|
+
const memoize_1 = require("../../../misc/memoize");
|
|
7
|
+
const mesh_collider_gen_1 = require("@dcl/protocol/out-js/decentraland/sdk/components/mesh_collider.gen");
|
|
8
|
+
const bit_operations_1 = require("../../../misc/bit-operations");
|
|
9
|
+
const ui_1 = require("../../visual/ui");
|
|
10
|
+
exports.floorMeshes = [];
|
|
11
|
+
const colliderSymbol = Symbol('isCollider');
|
|
12
|
+
exports.colliderMaterial = (0, memoize_1.memoize)((scene) => {
|
|
13
|
+
const m = new materials_1.GridMaterial('collider-material', scene);
|
|
14
|
+
m.opacity = 0;
|
|
15
|
+
m.sideOrientation = 0;
|
|
16
|
+
m.disableColorWrite = true;
|
|
17
|
+
m.disableDepthWrite = true;
|
|
18
|
+
m.mainColor.set(0, 0, 0);
|
|
19
|
+
m.lineColor.set(0, 1, 0);
|
|
20
|
+
m.zOffset = -1;
|
|
21
|
+
m.fogEnabled = false;
|
|
22
|
+
m.depthFunction = 2;
|
|
23
|
+
m.gridRatio = .1;
|
|
24
|
+
m.freeze();
|
|
25
|
+
if (typeof OffscreenCanvas !== 'undefined') {
|
|
26
|
+
(0, ui_1.AddToggle)('Show Colliders', (0, ui_1.guiPanel)(scene)).onIsCheckedChangedObservable.add((v) => {
|
|
27
|
+
if (v) {
|
|
28
|
+
m.opacity = 1;
|
|
29
|
+
m.disableColorWrite = false;
|
|
30
|
+
m.disableDepthWrite = false;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
m.opacity = 0;
|
|
34
|
+
m.disableColorWrite = true;
|
|
35
|
+
m.disableDepthWrite = true;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return m;
|
|
40
|
+
});
|
|
41
|
+
function setColliderMask(mesh, layers) {
|
|
42
|
+
mesh[colliderSymbol] = layers;
|
|
43
|
+
if (mesh.name.endsWith('_collider')) {
|
|
44
|
+
mesh.material = (0, exports.colliderMaterial)(mesh.getScene());
|
|
45
|
+
addFloorMesh(mesh);
|
|
46
|
+
}
|
|
47
|
+
mesh.checkCollisions = (layers & mesh_collider_gen_1.ColliderLayer.CL_PHYSICS) != 0;
|
|
48
|
+
mesh.isPickable = (layers & mesh_collider_gen_1.ColliderLayer.CL_POINTER) != 0;
|
|
49
|
+
mesh.onDisposeObservable.addOnce(() => {
|
|
50
|
+
const ix = exports.floorMeshes.indexOf(mesh);
|
|
51
|
+
if (ix != -1) {
|
|
52
|
+
exports.floorMeshes.splice(ix, 1);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
exports.setColliderMask = setColliderMask;
|
|
57
|
+
function addFloorMesh(mesh) {
|
|
58
|
+
const ix = exports.floorMeshes.indexOf(mesh);
|
|
59
|
+
if (ix !== -1) {
|
|
60
|
+
exports.floorMeshes.push(mesh);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function getColliderLayers(mesh) {
|
|
64
|
+
return mesh[colliderSymbol] || 0;
|
|
65
|
+
}
|
|
66
|
+
exports.getColliderLayers = getColliderLayers;
|
|
67
|
+
// this function returns the meshes that match the provided mask
|
|
68
|
+
function pickMeshesForMask(entity, mask) {
|
|
69
|
+
if (!mask)
|
|
70
|
+
return [];
|
|
71
|
+
return entity.getChildMeshes(false, (mesh) => {
|
|
72
|
+
if (mesh instanceof core_1.AbstractMesh) {
|
|
73
|
+
return (0, bit_operations_1.bitIntersectsAndContainsAny)(getColliderLayers(mesh), mask);
|
|
74
|
+
}
|
|
75
|
+
return true;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
exports.pickMeshesForMask = pickMeshesForMask;
|
|
79
|
+
//# sourceMappingURL=colliders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colliders.js","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/colliders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SceneContext } from "../scene-context";
|
|
2
|
+
/**
|
|
3
|
+
* This function perform the scheduled parenting operations (scene.unparentedEntities)
|
|
4
|
+
* and prevents cycles in the final hierarchy.
|
|
5
|
+
*
|
|
6
|
+
* If a cycle is found, then the parenting operation will remain pending until
|
|
7
|
+
* scene.hierarchyChanged is set to true again by a mutated TransformComponent.
|
|
8
|
+
*
|
|
9
|
+
* This function also executes iteratively while scene.hierarchyChanged==true.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveCyclicParening(scene: SceneContext): void;
|
|
12
|
+
//# sourceMappingURL=cyclic-transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclic-transform.d.ts","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/cyclic-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG/C;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,QA0CxD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveCyclicParening = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* This function perform the scheduled parenting operations (scene.unparentedEntities)
|
|
6
|
+
* and prevents cycles in the final hierarchy.
|
|
7
|
+
*
|
|
8
|
+
* If a cycle is found, then the parenting operation will remain pending until
|
|
9
|
+
* scene.hierarchyChanged is set to true again by a mutated TransformComponent.
|
|
10
|
+
*
|
|
11
|
+
* This function also executes iteratively while scene.hierarchyChanged==true.
|
|
12
|
+
*/
|
|
13
|
+
function resolveCyclicParening(scene) {
|
|
14
|
+
while (scene.hierarchyChanged) {
|
|
15
|
+
scene.hierarchyChanged = false;
|
|
16
|
+
// Iterate over the unparentedEntities and try to re-parent them if there are no cycles
|
|
17
|
+
// > set hierarchyChanged=true in case of successful reparenting
|
|
18
|
+
for (const entityId of scene.unparentedEntities) {
|
|
19
|
+
const entity = scene.getEntityOrNull(entityId);
|
|
20
|
+
// pending reparentings may be outdated due to entity deletion messages
|
|
21
|
+
if (entity) {
|
|
22
|
+
const parentEntityId = entity.expectedParentEntityId;
|
|
23
|
+
// cancel if the entity self references itself
|
|
24
|
+
if (parentEntityId === entity.entityId) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
// cancel if the parent entity was deleted
|
|
28
|
+
if (scene.deletedEntities.has(parentEntityId)) {
|
|
29
|
+
// TODO add tests for reparenting with deleted entities
|
|
30
|
+
entity.parent = scene.rootNode;
|
|
31
|
+
scene.hierarchyChanged = true;
|
|
32
|
+
scene.unparentedEntities.delete(entityId);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
// get or create the entity that should be the parent as defined per TransformComponent
|
|
36
|
+
const desiredParent = scene.getOrCreateEntity(parentEntityId);
|
|
37
|
+
// walk up the parents of the desiredParent to find the current entity, that would be a cycle
|
|
38
|
+
const needsCorrection = entity.parent !== desiredParent;
|
|
39
|
+
const hasCycle = needsCorrection && detectEntityIdInParentChain(desiredParent, entity);
|
|
40
|
+
if (!hasCycle) {
|
|
41
|
+
entity.parent = desiredParent;
|
|
42
|
+
scene.hierarchyChanged = true;
|
|
43
|
+
// remove from the unparented list
|
|
44
|
+
scene.unparentedEntities.delete(entityId);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
entity.parent = scene.rootNode;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.resolveCyclicParening = resolveCyclicParening;
|
|
54
|
+
/**
|
|
55
|
+
* This function walks the parents of the provided searchEntity
|
|
56
|
+
* @returns true if the searchEntity is present in the parenting chain
|
|
57
|
+
*/
|
|
58
|
+
function detectEntityIdInParentChain(leafEntity, searchEntity) {
|
|
59
|
+
// walk the parents until we find the searchEntity we are looking for
|
|
60
|
+
let parent = leafEntity;
|
|
61
|
+
while (parent = parent?.parent) {
|
|
62
|
+
if (parent === searchEntity)
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=cyclic-transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cyclic-transform.js","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/cyclic-transform.ts"],"names":[],"mappings":";;;AAGA;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,KAAmB;IACvD,OAAO,KAAK,CAAC,gBAAgB,EAAE;QAC7B,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAA;QAE9B,uFAAuF;QACvF,gEAAgE;QAChE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,kBAAkB,EAAE;YAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YAC9C,uEAAuE;YACvE,IAAI,MAAM,EAAE;gBACV,MAAM,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAA;gBAEpD,8CAA8C;gBAC9C,IAAI,cAAc,KAAK,MAAM,CAAC,QAAQ,EAAE;oBAAE,SAAQ;iBAAE;gBAEpD,0CAA0C;gBAC1C,IAAI,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;oBAC7C,uDAAuD;oBACvD,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAA;oBAC9B,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAA;oBAC7B,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;oBACzC,SAAQ;iBACT;gBAED,uFAAuF;gBACvF,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;gBAE7D,6FAA6F;gBAC7F,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,KAAK,aAAa,CAAA;gBACvD,MAAM,QAAQ,GAAG,eAAe,IAAI,2BAA2B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;gBAEtF,IAAI,CAAC,QAAQ,EAAE;oBACb,MAAM,CAAC,MAAM,GAAG,aAAa,CAAA;oBAC7B,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAA;oBAC7B,kCAAkC;oBAClC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;iBAC1C;qBAAM;oBACL,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAA;iBAC/B;aACF;SACF;KACF;AACH,CAAC;AA1CD,sDA0CC;AAED;;;GAGG;AACH,SAAS,2BAA2B,CAAC,UAAyB,EAAE,YAA2B;IACzF,qEAAqE;IACrE,IAAI,MAAM,GAAyB,UAAU,CAAA;IAC7C,OAAO,MAAM,GAAG,MAAM,EAAE,MAAa,EAAE;QACrC,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,IAAI,CAAA;KACzC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Entity_interpolation
|
|
3
|
+
* https://gamedev.stackexchange.com/questions/142427/delayed-linear-interpolation-for-networking
|
|
4
|
+
* https://github.com/menduz/Semi-Fixed-Time-Step-Interpolation
|
|
5
|
+
*
|
|
6
|
+
* The DelayedInterpolation component allows to animate the final transform of an entity.
|
|
7
|
+
* The animation is performed time-traveling back in time .duration amount of milliseconds
|
|
8
|
+
* and linearly interpolating the values of the transform from the past.
|
|
9
|
+
*
|
|
10
|
+
* The parameters used for this time-travel are set by the transform component and its
|
|
11
|
+
* modifiers like billboard, avatar attachment point, etc.
|
|
12
|
+
*
|
|
13
|
+
* When an entity changes its parent entity, the tween's time-travel registry will
|
|
14
|
+
* automatically reset. Meaning NO tweening will be performed upon reparenting.
|
|
15
|
+
*
|
|
16
|
+
* Tweens will be calculated AFTER the final position of the entity is calculated,
|
|
17
|
+
* and BEFORE the position of the child entities is computed. Effectively applying
|
|
18
|
+
* the animation to all its children.
|
|
19
|
+
*
|
|
20
|
+
* It is important to mention that tweens only apply to the local entity, if a parent entity P
|
|
21
|
+
* has a linear tween, and it has a child entity C with another tween, by moving P, only P's tween will apply,
|
|
22
|
+
* moving C's frame of reference but NOT animating it.
|
|
23
|
+
*/
|
|
24
|
+
import { BabylonEntity, TransformCommand } from '../BabylonEntity';
|
|
25
|
+
import { PBDelayedInterpolation } from '@dcl/protocol/out-js/decentraland/sdk/components/delayed_interpolation.gen';
|
|
26
|
+
export declare function applyDelayedInterpolation(entity: Pick<BabylonEntity, 'scaling' | 'rotationQuaternion' | 'position'>, component: PBDelayedInterpolation, commands: TransformCommand[], now: number): void;
|
|
27
|
+
//# sourceMappingURL=delayed-interpolation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayed-interpolation.d.ts","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/delayed-interpolation.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4EAA4E,CAAA;AAGnH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,oBAAoB,GAAG,UAAU,CAAC,EAC1E,SAAS,EAAE,sBAAsB,EACjC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,GAAG,EAAE,MAAM,QAqDZ"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyDelayedInterpolation = void 0;
|
|
4
|
+
const core_1 = require("@babylonjs/core");
|
|
5
|
+
function applyDelayedInterpolation(entity, component, commands, now) {
|
|
6
|
+
if (!entity.rotationQuaternion)
|
|
7
|
+
entity.rotationQuaternion = core_1.Quaternion.Identity();
|
|
8
|
+
const shouldInterpolate = component.timeTravelDuration > 0;
|
|
9
|
+
if (!commands || commands.length === 0) {
|
|
10
|
+
entity.position.setAll(0);
|
|
11
|
+
entity.scaling.setAll(1);
|
|
12
|
+
entity.rotationQuaternion.set(0, 0, 0, 1);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const latestState = commands[commands.length - 1];
|
|
16
|
+
if (!shouldInterpolate) {
|
|
17
|
+
entity.position.copyFrom(latestState.value.position);
|
|
18
|
+
entity.scaling.copyFrom(latestState.value.scale);
|
|
19
|
+
entity.rotationQuaternion.copyFrom(latestState.value.rotation);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const timeInThePast = now - component.timeTravelDuration; // ms
|
|
23
|
+
let firstStateIndex = -1;
|
|
24
|
+
let secondStateIndex = -1;
|
|
25
|
+
for (let i = 0; i < commands.length; i++) {
|
|
26
|
+
const state = commands[i];
|
|
27
|
+
if (state.time > timeInThePast) {
|
|
28
|
+
firstStateIndex = i - 1;
|
|
29
|
+
secondStateIndex = i;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const firstStateCandidate = commands[firstStateIndex];
|
|
34
|
+
const secondStateCandidate = commands[secondStateIndex];
|
|
35
|
+
if (!firstStateCandidate || !secondStateCandidate) {
|
|
36
|
+
entity.position.copyFrom(latestState.value.position);
|
|
37
|
+
entity.scaling.copyFrom(latestState.value.scale);
|
|
38
|
+
entity.rotationQuaternion.copyFrom(latestState.value.rotation);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const firstState = firstStateCandidate.value;
|
|
42
|
+
const secondState = secondStateCandidate.value;
|
|
43
|
+
const alpha = (timeInThePast - firstStateCandidate.time) / (secondStateCandidate.time - firstStateCandidate.time);
|
|
44
|
+
core_1.Vector3.LerpToRef(firstState.position, secondState.position, alpha, entity.position);
|
|
45
|
+
core_1.Vector3.LerpToRef(firstState.scale, secondState.scale, alpha, entity.scaling);
|
|
46
|
+
core_1.Quaternion.SlerpToRef(firstState.rotation, secondState.rotation, alpha, entity.rotationQuaternion);
|
|
47
|
+
}
|
|
48
|
+
exports.applyDelayedInterpolation = applyDelayedInterpolation;
|
|
49
|
+
//# sourceMappingURL=delayed-interpolation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayed-interpolation.js","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/delayed-interpolation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"easings.d.ts","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/easings.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AAEvD,UAAU,gBAAgB;IACxB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC;CACtC;AA4BD,eAAO,MAAM,gBAAgB,EAAE,gBAoE9B,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.easingsFunctions = void 0;
|
|
4
|
+
const tween_gen_1 = require("@dcl/protocol/out-js/decentraland/sdk/components/tween.gen");
|
|
5
|
+
const pow = Math.pow;
|
|
6
|
+
const sqrt = Math.sqrt;
|
|
7
|
+
const sin = Math.sin;
|
|
8
|
+
const cos = Math.cos;
|
|
9
|
+
const PI = Math.PI;
|
|
10
|
+
const c1 = 1.70158;
|
|
11
|
+
const c2 = c1 * 1.525;
|
|
12
|
+
const c3 = c1 + 1;
|
|
13
|
+
const c4 = (2 * PI) / 3;
|
|
14
|
+
const c5 = (2 * PI) / 4.5;
|
|
15
|
+
const bounceOut = function (x) {
|
|
16
|
+
const n1 = 7.5625;
|
|
17
|
+
const d1 = 2.75;
|
|
18
|
+
if (x < 1 / d1) {
|
|
19
|
+
return n1 * x * x;
|
|
20
|
+
}
|
|
21
|
+
else if (x < 2 / d1) {
|
|
22
|
+
return n1 * (x -= 1.5 / d1) * x + 0.75;
|
|
23
|
+
}
|
|
24
|
+
else if (x < 2.5 / d1) {
|
|
25
|
+
return n1 * (x -= 2.25 / d1) * x + 0.9375;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
return n1 * (x -= 2.625 / d1) * x + 0.984375;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.easingsFunctions = {
|
|
32
|
+
[tween_gen_1.EasingFunction.EF_LINEAR]: (x) => x,
|
|
33
|
+
[tween_gen_1.EasingFunction.EF_EASEINQUAD]: function (x) {
|
|
34
|
+
return x * x;
|
|
35
|
+
},
|
|
36
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTQUAD]: function (x) {
|
|
37
|
+
return 1 - (1 - x) * (1 - x);
|
|
38
|
+
},
|
|
39
|
+
[tween_gen_1.EasingFunction.EF_EASEINCUBIC]: function (x) {
|
|
40
|
+
return x * x * x;
|
|
41
|
+
},
|
|
42
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTCUBIC]: function (x) {
|
|
43
|
+
return 1 - pow(1 - x, 3);
|
|
44
|
+
},
|
|
45
|
+
[tween_gen_1.EasingFunction.EF_EASEINQUART]: function (x) {
|
|
46
|
+
return x * x * x * x;
|
|
47
|
+
},
|
|
48
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTQUART]: function (x) {
|
|
49
|
+
return 1 - pow(1 - x, 4);
|
|
50
|
+
},
|
|
51
|
+
[tween_gen_1.EasingFunction.EF_EASEINQUINT]: function (x) {
|
|
52
|
+
return x * x * x * x * x;
|
|
53
|
+
},
|
|
54
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTQUINT]: function (x) {
|
|
55
|
+
return 1 - pow(1 - x, 5);
|
|
56
|
+
},
|
|
57
|
+
[tween_gen_1.EasingFunction.EF_EASEINSINE]: function (x) {
|
|
58
|
+
return 1 - cos((x * PI) / 2);
|
|
59
|
+
},
|
|
60
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTSINE]: function (x) {
|
|
61
|
+
return sin((x * PI) / 2);
|
|
62
|
+
},
|
|
63
|
+
[tween_gen_1.EasingFunction.EF_EASEINEXPO]: function (x) {
|
|
64
|
+
return x === 0 ? 0 : pow(2, 10 * x - 10);
|
|
65
|
+
},
|
|
66
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTEXPO]: function (x) {
|
|
67
|
+
return x === 1 ? 1 : 1 - pow(2, -10 * x);
|
|
68
|
+
},
|
|
69
|
+
[tween_gen_1.EasingFunction.EF_EASEINCIRC]: function (x) {
|
|
70
|
+
return 1 - sqrt(1 - pow(x, 2));
|
|
71
|
+
},
|
|
72
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTCIRC]: function (x) {
|
|
73
|
+
return sqrt(1 - pow(x - 1, 2));
|
|
74
|
+
},
|
|
75
|
+
[tween_gen_1.EasingFunction.EF_EASEINBACK]: function (x) {
|
|
76
|
+
return c3 * x * x * x - c1 * x * x;
|
|
77
|
+
},
|
|
78
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTBACK]: function (x) {
|
|
79
|
+
return 1 + c3 * pow(x - 1, 3) + c1 * pow(x - 1, 2);
|
|
80
|
+
},
|
|
81
|
+
[tween_gen_1.EasingFunction.EF_EASEINELASTIC]: function (x) {
|
|
82
|
+
return x === 0
|
|
83
|
+
? 0
|
|
84
|
+
: x === 1
|
|
85
|
+
? 1
|
|
86
|
+
: -pow(2, 10 * x - 10) * sin((x * 10 - 10.75) * c4);
|
|
87
|
+
},
|
|
88
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTELASTIC]: function (x) {
|
|
89
|
+
return x === 0
|
|
90
|
+
? 0
|
|
91
|
+
: x === 1
|
|
92
|
+
? 1
|
|
93
|
+
: pow(2, -10 * x) * sin((x * 10 - 0.75) * c4) + 1;
|
|
94
|
+
},
|
|
95
|
+
[tween_gen_1.EasingFunction.EF_EASEINBOUNCE]: function (x) {
|
|
96
|
+
return 1 - bounceOut(1 - x);
|
|
97
|
+
},
|
|
98
|
+
[tween_gen_1.EasingFunction.EF_EASEOUTBOUNCE]: bounceOut,
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=easings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"easings.js","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/easings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hide-camera-obstuction-system.d.ts","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/hide-camera-obstuction-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAa,KAAK,EAAgB,MAAM,iBAAiB,CAAC;AAMhG,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe;;EAwIlF"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCameraObstructionSystem = void 0;
|
|
4
|
+
const core_1 = require("@babylonjs/core");
|
|
5
|
+
const colliders_1 = require("./colliders");
|
|
6
|
+
const mesh_collider_gen_1 = require("@dcl/protocol/out-js/decentraland/sdk/components/mesh_collider.gen");
|
|
7
|
+
// This system hides the meshes between the camera and the player on the third person camera
|
|
8
|
+
// it also "elastically" moves the camera to move it out from objects
|
|
9
|
+
function createCameraObstructionSystem(scene, camera) {
|
|
10
|
+
const ray = new core_1.Ray(core_1.Vector3.Zero(), core_1.Vector3.One(), 1);
|
|
11
|
+
const rayDir = core_1.Vector3.Zero();
|
|
12
|
+
// camera seems to get stuck into things
|
|
13
|
+
// should move camera away from things by a value of cameraSkin
|
|
14
|
+
const cameraSkin = 0.5;
|
|
15
|
+
let prevPickedMeshes = [];
|
|
16
|
+
let pickedMeshes = [];
|
|
17
|
+
const makeObstructionInvisible = false;
|
|
18
|
+
const elasticSteps = 50;
|
|
19
|
+
/**
|
|
20
|
+
* The following method handles the use case wherein some mesh
|
|
21
|
+
* comes between the avatar and the camera thus obstructing the view
|
|
22
|
+
* of the avatar.
|
|
23
|
+
* Two ways this can be handled
|
|
24
|
+
* a) make the obstructing mesh invisible
|
|
25
|
+
* instead of invisible a better option would have been to make semi transparent.
|
|
26
|
+
* Unfortunately, unlike mesh, mesh instances do not "visibility" setting)
|
|
27
|
+
* Every alternate frame make mesh visible and invisible to give the impression of semi-transparent.
|
|
28
|
+
* b) move the camera in front of the obstructing mesh
|
|
29
|
+
*/
|
|
30
|
+
function handleObstruction() {
|
|
31
|
+
//get vector from av (camera.target) to camera
|
|
32
|
+
camera.position.subtractToRef(camera.target, rayDir);
|
|
33
|
+
//start ray from av to camera
|
|
34
|
+
ray.origin = camera.target;
|
|
35
|
+
ray.length = rayDir.length();
|
|
36
|
+
ray.direction = rayDir.normalize();
|
|
37
|
+
// handle case were pick is with a child of avatar, avatar atatchment. etc
|
|
38
|
+
const pickedObjects = scene.multiPickWithRay(ray, (mesh) => {
|
|
39
|
+
if ((0, colliders_1.getColliderLayers)(mesh) & mesh_collider_gen_1.ColliderLayer.CL_PHYSICS)
|
|
40
|
+
return true;
|
|
41
|
+
return false;
|
|
42
|
+
});
|
|
43
|
+
if (makeObstructionInvisible) {
|
|
44
|
+
prevPickedMeshes = pickedMeshes;
|
|
45
|
+
if (pickedObjects && pickedObjects.length > 0) {
|
|
46
|
+
pickedMeshes = [];
|
|
47
|
+
for (let pi of pickedObjects) {
|
|
48
|
+
if (pi.pickedMesh?.isVisible || (pi.pickedMesh && prevPickedMeshes.includes(pi.pickedMesh))) {
|
|
49
|
+
pi.pickedMesh.isVisible = false;
|
|
50
|
+
pickedMeshes.push(pi.pickedMesh);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for (let pm of prevPickedMeshes) {
|
|
54
|
+
if (!pickedMeshes.includes(pm)) {
|
|
55
|
+
pm.isVisible = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
for (let pm of prevPickedMeshes) {
|
|
61
|
+
pm.isVisible = true;
|
|
62
|
+
}
|
|
63
|
+
prevPickedMeshes.length = 0;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (pickedObjects) {
|
|
67
|
+
if (pickedObjects.length > 0) {
|
|
68
|
+
// postion the camera in front of the mesh that is obstructing camera
|
|
69
|
+
// if only one obstruction and it is invisible then if it is not collidable or our camera is not collidable then do nothing
|
|
70
|
+
if (pickedObjects.length == 1 &&
|
|
71
|
+
!isSeeAble(pickedObjects[0].pickedMesh) &&
|
|
72
|
+
(!pickedObjects[0].pickedMesh?.checkCollisions || !camera.checkCollisions))
|
|
73
|
+
return;
|
|
74
|
+
// if our camera is collidable then we donot want it to get stuck behind another collidable obsrtucting mesh
|
|
75
|
+
let pickedPoint = null;
|
|
76
|
+
// we will asume the order of picked meshes is from closest to avatar to furthest
|
|
77
|
+
// we should get the first one which is visible or invisible and collidable
|
|
78
|
+
for (let i = 0; i < pickedObjects.length; i++) {
|
|
79
|
+
let pm = pickedObjects[i].pickedMesh;
|
|
80
|
+
if (isSeeAble(pm)) {
|
|
81
|
+
pickedPoint = pickedObjects[i].pickedPoint;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
else if (pm?.checkCollisions) {
|
|
85
|
+
pickedPoint = pickedObjects[i].pickedPoint;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (pickedPoint == null)
|
|
90
|
+
return;
|
|
91
|
+
const c2p = camera.position.subtract(pickedPoint);
|
|
92
|
+
// note that when camera is collidable, changing the orbital camera radius may not work.
|
|
93
|
+
// changing the radius moves the camera forward (with collision?) and collision can interfere with movement
|
|
94
|
+
//
|
|
95
|
+
// in every cylce we are dividing the distance to tarvel by same number of steps.
|
|
96
|
+
// as we get closer to destination the speed will thus slow down.
|
|
97
|
+
// when just 1 unit distance left, lets snap to the final position.
|
|
98
|
+
// when calculating final position make sure the camera does not get stuck at the pickposition especially
|
|
99
|
+
// if collision is on
|
|
100
|
+
const l = c2p.length();
|
|
101
|
+
if (camera.checkCollisions) {
|
|
102
|
+
let step;
|
|
103
|
+
if (l <= 1) {
|
|
104
|
+
step = c2p.addInPlace(c2p.normalizeToNew().scaleInPlace(cameraSkin));
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
step = c2p.normalize().scaleInPlace(l / elasticSteps);
|
|
108
|
+
}
|
|
109
|
+
camera.position = camera.position.subtract(step);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
let step;
|
|
113
|
+
if (l <= 1)
|
|
114
|
+
step = l + cameraSkin;
|
|
115
|
+
else
|
|
116
|
+
step = l / elasticSteps;
|
|
117
|
+
camera.radius = camera.radius - step;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// how many ways can a mesh be invisible?
|
|
123
|
+
function isSeeAble(mesh) {
|
|
124
|
+
if (!mesh)
|
|
125
|
+
return false;
|
|
126
|
+
if (!mesh.isVisible)
|
|
127
|
+
return false;
|
|
128
|
+
if (!mesh.isEnabled)
|
|
129
|
+
return false;
|
|
130
|
+
if (mesh.visibility == 0)
|
|
131
|
+
return false;
|
|
132
|
+
if (mesh.material != null && mesh.material.alphaMode != 0 && mesh.material.alpha == 0)
|
|
133
|
+
return false;
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
update() {
|
|
138
|
+
if (camera.radius > camera.lowerRadiusLimit) {
|
|
139
|
+
handleObstruction();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
exports.createCameraObstructionSystem = createCameraObstructionSystem;
|
|
145
|
+
//# sourceMappingURL=hide-camera-obstuction-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hide-camera-obstuction-system.js","sourceRoot":"","sources":["../../../../../src/lib/babylon/scene/logic/hide-camera-obstuction-system.ts"],"names":[],"mappings":"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"}
|