From d54c08dc4ef093d098aa701710f52a158d3b763a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Fri, 2 Feb 2024 23:07:58 -0600 Subject: [PATCH] feat: no duplicate armor peices --- src/components/ArmorMesh/components/Armor/index.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/ArmorMesh/components/Armor/index.tsx b/src/components/ArmorMesh/components/Armor/index.tsx index f5b39d131..eceee37c7 100644 --- a/src/components/ArmorMesh/components/Armor/index.tsx +++ b/src/components/ArmorMesh/components/Armor/index.tsx @@ -150,6 +150,7 @@ export function ArmorMesh({ .applyQuaternion(event.object.getWorldQuaternion(new Quaternion())); const angle = Math.acos(surfaceNormal.dot(shellNormal)); const shell = useDuel.getState().antagonist!.shell; + const indexedObjects = new Set(); const intersections = event.intersections .filter(({ object }) => Boolean(object.userData.type)) .map( @@ -159,7 +160,12 @@ export function ArmorMesh({ userData: ArmorMeshUserData; }; }, - ); + ) + .filter(({ object }) => { + if (indexedObjects.has(object.userData.type)) return false; + indexedObjects.add(object.userData.type); + return true; + }); const intersectionsTillFirstCoreArmor = intersections.slice( 0, intersections.findIndex(