diff --git a/packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx b/packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx index 79186e8bf..0552b4aee 100644 --- a/packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx +++ b/packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx @@ -1,5 +1,5 @@ import { I_HAT, J_HAT } from "@blitzkit/core"; -import { useThree } from "@react-three/fiber"; +import { invalidate, useThree } from "@react-three/fiber"; import { clamp } from "lodash-es"; import type { QuicklimeEvent } from "quicklime"; import { useEffect, useMemo, type ComponentProps } from "react"; @@ -91,7 +91,7 @@ export function StaticArmorSceneComponent({ color = new Color( clamp(1 - (7 / 8) * xClamped, 0, 1), 0, - clamp(1 - (1 / 8) * xClamped, 0, 1) + clamp(1 - (1 / 8) * xClamped, 0, 1), ); opacity = clamp(x + 1 / 2, 0, 1); break; @@ -115,7 +115,7 @@ export function StaticArmorSceneComponent({ opacity: 0, userData: { opacity0: opacity }, }), - [thickness] + [thickness], ); const outlineMaterial = useMemo( () => @@ -126,7 +126,7 @@ export function StaticArmorSceneComponent({ opacity: 0, transparent: true, }), - [thickness] + [thickness], ); useEffect(() => { @@ -165,6 +165,7 @@ export function StaticArmorSceneComponent({ } surfaceMaterial.needsUpdate = true; + invalidate(); } function handleTransitionEvent(event: QuicklimeEvent) { @@ -180,7 +181,7 @@ export function StaticArmorSceneComponent({ const unsubscribes = [ Tankopedia.on( (state) => state.highlightArmor?.name, - handleHighlightArmor + handleHighlightArmor, ), () => transitionEvent.off(handleTransitionEvent), ]; @@ -194,14 +195,14 @@ export function StaticArmorSceneComponent({ const { clip } = props; const gunOrigin = unrotateDavaVector(props.gunOrigin.clone()); const neckOrigin = unrotateDavaVector(props.hullOrigin.clone()).add( - unrotateDavaVector(props.turretOrigin.clone()) + unrotateDavaVector(props.turretOrigin.clone()), ); const barrelOrigin = neckOrigin.clone().add(gunOrigin); const distanceToBarrel = clip.distanceToPoint(barrelOrigin); const point = new Vector3(); function handleModelTransform( - event: QuicklimeEvent + event: QuicklimeEvent, ) { clip.normal .set(0, 0, -1) @@ -266,7 +267,7 @@ export function StaticArmorSceneComponent({ const surfaceNormal = event .normal!.clone() .applyQuaternion( - event.object.getWorldQuaternion(new Quaternion()) + event.object.getWorldQuaternion(new Quaternion()), ); const angle = surfaceNormal.angleTo(cameraNormal); const thicknessAngled =