diff --git a/package-lock.json b/package-lock.json index 495be2b6a..38067951e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "license": "Apache-2.0", "dependencies": { "@actions/core": "^1.10.0", - "@dcl/protocol": "1.0.0-27167791416.commit-a470b13", + "@dcl/protocol": "1.0.0-27218016498.commit-4c3067e", "@dcl/quickjs-emscripten": "^0.21.0-3680274614.commit-1808aa1", "@dcl/ts-proto": "1.153.0", "@types/fs-extra": "^9.0.12", @@ -580,9 +580,9 @@ } }, "node_modules/@dcl/protocol": { - "version": "1.0.0-27167791416.commit-a470b13", - "resolved": "https://registry.npmjs.org/@dcl/protocol/-/protocol-1.0.0-27167791416.commit-a470b13.tgz", - "integrity": "sha512-oKhw0qGAx2ALobFLo4CnGXqjaBl4sqekWIUBiek8cTyh6qdufIMOKCbOOmoW8TSrD42R0hJ+o7But8/VMQygvQ==", + "version": "1.0.0-27218016498.commit-4c3067e", + "resolved": "https://registry.npmjs.org/@dcl/protocol/-/protocol-1.0.0-27218016498.commit-4c3067e.tgz", + "integrity": "sha512-+zmDzD+gKMQUJULUo0UFLKRcGpE/5owYS4CfNDM/KOxaeaGF7ckkebUNkZMSKBb6MXkaN8rB1iUfX3X2usPYvg==", "license": "Apache-2.0", "dependencies": { "@dcl/ts-proto": "1.154.0", @@ -8382,9 +8382,9 @@ } }, "@dcl/protocol": { - "version": "1.0.0-27167791416.commit-a470b13", - "resolved": "https://registry.npmjs.org/@dcl/protocol/-/protocol-1.0.0-27167791416.commit-a470b13.tgz", - "integrity": "sha512-oKhw0qGAx2ALobFLo4CnGXqjaBl4sqekWIUBiek8cTyh6qdufIMOKCbOOmoW8TSrD42R0hJ+o7But8/VMQygvQ==", + "version": "1.0.0-27218016498.commit-4c3067e", + "resolved": "https://registry.npmjs.org/@dcl/protocol/-/protocol-1.0.0-27218016498.commit-4c3067e.tgz", + "integrity": "sha512-+zmDzD+gKMQUJULUo0UFLKRcGpE/5owYS4CfNDM/KOxaeaGF7ckkebUNkZMSKBb6MXkaN8rB1iUfX3X2usPYvg==", "requires": { "@dcl/ts-proto": "1.154.0", "protobufjs": "7.2.4" diff --git a/package.json b/package.json index 7383459b5..c4d369b95 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "bugs": "https://github.com/decentraland/js-sdk-toolchain/issues", "dependencies": { "@actions/core": "^1.10.0", - "@dcl/protocol": "1.0.0-27167791416.commit-a470b13", + "@dcl/protocol": "1.0.0-27218016498.commit-4c3067e", "@dcl/quickjs-emscripten": "^0.21.0-3680274614.commit-1808aa1", "@dcl/ts-proto": "1.153.0", "@types/fs-extra": "^9.0.12", diff --git a/packages/@dcl/ecs/src/components/extended/TriggerArea.ts b/packages/@dcl/ecs/src/components/extended/TriggerArea.ts index 031505990..315adf3be 100644 --- a/packages/@dcl/ecs/src/components/extended/TriggerArea.ts +++ b/packages/@dcl/ecs/src/components/extended/TriggerArea.ts @@ -10,7 +10,7 @@ export interface TriggerAreaComponentDefinitionExtended * @public * Set a box in the MeshCollider component * @param entity - entity to create or replace the TriggerArea component - * @param collisionMask - the collision layers mask for the trigger to react, default: Player + * @param collisionMask - the collision layers mask for the trigger to react, default: CL_PLAYER */ setBox(entity: Entity, collisionMask?: ColliderLayer | ColliderLayer[]): void @@ -18,7 +18,7 @@ export interface TriggerAreaComponentDefinitionExtended * @public * Set a sphere in the MeshCollider component * @param entity - entity to create or replace the TriggerArea component - * @param collisionMask - the collision layers mask for the trigger to react, default: Player + * @param collisionMask - the collision layers mask for the trigger to react, default: CL_PLAYER */ setSphere(entity: Entity, collisionMask?: ColliderLayer | ColliderLayer[]): void } diff --git a/packages/@dcl/playground-assets/etc/playground-assets.api.md b/packages/@dcl/playground-assets/etc/playground-assets.api.md index c2df9f7ab..4a6243a44 100644 --- a/packages/@dcl/playground-assets/etc/playground-assets.api.md +++ b/packages/@dcl/playground-assets/etc/playground-assets.api.md @@ -481,13 +481,12 @@ export const enum ColliderLayer { CL_CUSTOM7 = 16384, // (undocumented) CL_CUSTOM8 = 32768, + CL_MAIN_PLAYER = 8, CL_NONE = 0, CL_PHYSICS = 2, CL_PLAYER = 4, CL_POINTER = 1, // (undocumented) - CL_RESERVED2 = 8, - // (undocumented) CL_RESERVED3 = 16, // (undocumented) CL_RESERVED4 = 32, diff --git a/packages/@dcl/sdk-commands/package-lock.json b/packages/@dcl/sdk-commands/package-lock.json index 99e9bdc70..dc90cfa2d 100644 --- a/packages/@dcl/sdk-commands/package-lock.json +++ b/packages/@dcl/sdk-commands/package-lock.json @@ -17,7 +17,7 @@ "@dcl/inspector": "7.34.3", "@dcl/linker-dapp": "0.15.2", "@dcl/mini-comms": "1.0.1-20230216163137.commit-a4c75be", - "@dcl/protocol": "1.0.0-27167791416.commit-a470b13", + "@dcl/protocol": "1.0.0-27218016498.commit-4c3067e", "@dcl/quests-client": "^1.0.3", "@dcl/quests-manager": "^0.1.4", "@dcl/rpc": "^1.1.1", @@ -358,9 +358,9 @@ } }, "node_modules/@dcl/protocol": { - "version": "1.0.0-27167791416.commit-a470b13", - "resolved": "https://registry.npmjs.org/@dcl/protocol/-/protocol-1.0.0-27167791416.commit-a470b13.tgz", - "integrity": "sha512-oKhw0qGAx2ALobFLo4CnGXqjaBl4sqekWIUBiek8cTyh6qdufIMOKCbOOmoW8TSrD42R0hJ+o7But8/VMQygvQ==", + "version": "1.0.0-27218016498.commit-4c3067e", + "resolved": "https://registry.npmjs.org/@dcl/protocol/-/protocol-1.0.0-27218016498.commit-4c3067e.tgz", + "integrity": "sha512-+zmDzD+gKMQUJULUo0UFLKRcGpE/5owYS4CfNDM/KOxaeaGF7ckkebUNkZMSKBb6MXkaN8rB1iUfX3X2usPYvg==", "license": "Apache-2.0", "dependencies": { "@dcl/ts-proto": "1.154.0", diff --git a/packages/@dcl/sdk-commands/package.json b/packages/@dcl/sdk-commands/package.json index 631f83018..4ae8ce132 100644 --- a/packages/@dcl/sdk-commands/package.json +++ b/packages/@dcl/sdk-commands/package.json @@ -14,7 +14,7 @@ "@dcl/inspector": "7.34.3", "@dcl/linker-dapp": "0.15.2", "@dcl/mini-comms": "1.0.1-20230216163137.commit-a4c75be", - "@dcl/protocol": "1.0.0-27167791416.commit-a470b13", + "@dcl/protocol": "1.0.0-27218016498.commit-4c3067e", "@dcl/quests-client": "^1.0.3", "@dcl/quests-manager": "^0.1.4", "@dcl/rpc": "^1.1.1", diff --git a/test/ecs/components/MeshCollider.spec.ts b/test/ecs/components/MeshCollider.spec.ts index 434c1a749..0184e12e5 100644 --- a/test/ecs/components/MeshCollider.spec.ts +++ b/test/ecs/components/MeshCollider.spec.ts @@ -86,4 +86,21 @@ describe('Generated MeshCollider ProtoBuf', () => { } }) }) + + it('getCollisionMask combines CL_PLAYER and CL_MAIN_PLAYER into bitfield 12', () => { + const newEngine = Engine() + const entity = newEngine.addEntity() + const MeshCollider = components.MeshCollider(newEngine) + + // CL_PLAYER = 4, CL_MAIN_PLAYER = 8 => OR = 12 + MeshCollider.setBox(entity, [ColliderLayer.CL_PLAYER, ColliderLayer.CL_MAIN_PLAYER]) + expect(MeshCollider.get(entity)).toStrictEqual({ + collisionMask: 12, + mesh: { + $case: 'box', + box: {} + } + }) + expect(ColliderLayer.CL_PLAYER | ColliderLayer.CL_MAIN_PLAYER).toBe(12) + }) }) diff --git a/test/ecs/events/raycastHelperSystem.spec.ts b/test/ecs/events/raycastHelperSystem.spec.ts index 370b047f7..dcf37927e 100644 --- a/test/ecs/events/raycastHelperSystem.spec.ts +++ b/test/ecs/events/raycastHelperSystem.spec.ts @@ -462,6 +462,21 @@ describe('Raycast Helper System should', () => { expect(fn).toHaveBeenCalled() }) + it('round-trips CL_MAIN_PLAYER collision mask through raycast helper', async () => { + const raycastEntity = engine.addEntity() + raycastHelperSystem.registerLocalDirectionRaycast(raycastEntity, (_result) => {}, { + direction: Vector3.Forward(), + queryType: RaycastQueryType.RQT_HIT_FIRST, + collisionMask: ColliderLayer.CL_MAIN_PLAYER + }) + + await engine.update(1) + + const attachedRaycast = raycastComponent.get(raycastEntity) + expect(attachedRaycast.collisionMask).toBe(ColliderLayer.CL_MAIN_PLAYER) + expect(attachedRaycast.collisionMask).toBe(8) + }) + it('attach raycast component after 1 frame', async () => { const raycastEntity = engine.addEntity() raycastHelperSystem.registerGlobalDirectionRaycast({ entity: raycastEntity }, (_result) => {})