From aadc252e47e2bb9dfda22b0137b43f5b2a54d74a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Thu, 2 Oct 2025 10:19:50 -0500 Subject: [PATCH] fix: use new quicklime controls enabled --- .../Armor/components/StaticArmor.tsx | 26 ++++++----------- .../TankSandbox/components/TankModel.tsx | 25 +++++------------ .../website/src/hooks/useTankTransform.ts | 28 +++++++++---------- packages/website/src/stores/tankopedia.ts | 1 - 4 files changed, 29 insertions(+), 51 deletions(-) diff --git a/packages/website/src/components/Armor/components/StaticArmor.tsx b/packages/website/src/components/Armor/components/StaticArmor.tsx index efb7f5d4b..1363cb385 100644 --- a/packages/website/src/components/Armor/components/StaticArmor.tsx +++ b/packages/website/src/components/Armor/components/StaticArmor.tsx @@ -7,6 +7,7 @@ import { hasEquipment } from "../../../core/blitzkit/hasEquipment"; import { modelTransformEvent } from "../../../core/blitzkit/modelTransform"; import { nameToArmorId } from "../../../core/blitzkit/nameToArmorId"; import { resolveArmor } from "../../../core/blitzkit/resolveThickness"; +import { controlsEnabledEvent } from "../../../core/controlsEnabled"; import { useArmor } from "../../../hooks/useArmor"; import { useModel } from "../../../hooks/useModel"; import { useTankModelDefinition } from "../../../hooks/useTankModelDefinition"; @@ -154,9 +155,8 @@ export const StaticArmor = memo(({ thicknessRange }) => { position.set(event.clientX, event.clientY); - Tankopedia.mutate((draft) => { - draft.controlsEnabled = false; - }); + controlsEnabledEvent.dispatch(false); + Tankopedia.mutate((draft) => { draft.shot = undefined; draft.highlightArmor = undefined; @@ -192,9 +192,7 @@ export const StaticArmor = memo(({ thicknessRange }) => { modelTransformEvent.dispatch({ pitch, yaw }); } function handlePointerUp() { - Tankopedia.mutate((draft) => { - draft.controlsEnabled = true; - }); + controlsEnabledEvent.dispatch(true); window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointerup", handlePointerUp); } @@ -243,9 +241,7 @@ export const StaticArmor = memo(({ thicknessRange }) => { function onPointerDown(event: ThreeEvent) { event.stopPropagation(); - Tankopedia.mutate((draft) => { - draft.controlsEnabled = false; - }); + controlsEnabledEvent.dispatch(false); Tankopedia.mutate((draft) => { draft.shot = undefined; draft.highlightArmor = undefined; @@ -284,9 +280,7 @@ export const StaticArmor = memo(({ thicknessRange }) => { modelTransformEvent.dispatch({ pitch, yaw }); } function handlePointerUp() { - Tankopedia.mutate((draft) => { - draft.controlsEnabled = true; - }); + controlsEnabledEvent.dispatch(true); window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointerup", handlePointerUp); } @@ -324,9 +318,7 @@ export const StaticArmor = memo(({ thicknessRange }) => { function onPointerDown(event: ThreeEvent) { event.stopPropagation(); - Tankopedia.mutate((draft) => { - draft.controlsEnabled = false; - }); + controlsEnabledEvent.dispatch(false); Tankopedia.mutate((draft) => { draft.shot = undefined; draft.highlightArmor = undefined; @@ -364,9 +356,7 @@ export const StaticArmor = memo(({ thicknessRange }) => { modelTransformEvent.dispatch({ pitch, yaw }); } function handlePointerUp() { - Tankopedia.mutate((draft) => { - draft.controlsEnabled = true; - }); + controlsEnabledEvent.dispatch(true); window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointerup", handlePointerUp); diff --git a/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/TankModel.tsx b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/TankModel.tsx index cc1451ef2..b6f89c092 100644 --- a/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/TankModel.tsx +++ b/packages/website/src/components/Tankopedia/HeroSection/components/TankSandbox/components/TankModel.tsx @@ -5,6 +5,7 @@ import { applyPitchYawLimits } from "../../../../../../core/blitz/applyPitchYawL import { hasEquipment } from "../../../../../../core/blitzkit/hasEquipment"; import { jsxTree } from "../../../../../../core/blitzkit/jsxTree"; import { modelTransformEvent } from "../../../../../../core/blitzkit/modelTransform"; +import { controlsEnabledEvent } from "../../../../../../core/controlsEnabled"; import { useModel } from "../../../../../../hooks/useModel"; import { useTankModelDefinition } from "../../../../../../hooks/useTankModelDefinition"; import { useTankTransform } from "../../../../../../hooks/useTankTransform"; @@ -62,9 +63,7 @@ export function TankModel() { position.set(event.clientX, event.clientY); event.stopPropagation(); - Tankopedia.mutate((draft) => { - draft.controlsEnabled = false; - }); + controlsEnabledEvent.dispatch(false); window.addEventListener("pointermove", handlePointerMove); window.addEventListener("pointerup", handlePointerUp); @@ -81,9 +80,7 @@ export function TankModel() { translateTexture(deltaX + deltaY); } function handlePointerUp() { - Tankopedia.mutate((draft) => { - draft.controlsEnabled = true; - }); + controlsEnabledEvent.dispatch(true); window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointerup", handlePointerUp); @@ -123,9 +120,7 @@ export function TankModel() { position.set(event.clientX, event.clientY); - Tankopedia.mutate((draft) => { - draft.controlsEnabled = false; - }); + controlsEnabledEvent.dispatch(false); Tankopedia.mutate((draft) => { draft.shot = undefined; draft.highlightArmor = undefined; @@ -161,9 +156,7 @@ export function TankModel() { modelTransformEvent.dispatch({ pitch, yaw }); } function handlePointerUp() { - Tankopedia.mutate((draft) => { - draft.controlsEnabled = true; - }); + controlsEnabledEvent.dispatch(true); window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointerup", handlePointerUp); } @@ -205,9 +198,7 @@ export function TankModel() { function onPointerDown(event: ThreeEvent) { event.stopPropagation(); - Tankopedia.mutate((draft) => { - draft.controlsEnabled = false; - }); + controlsEnabledEvent.dispatch(false); Tankopedia.mutate((draft) => { draft.shot = undefined; draft.highlightArmor = undefined; @@ -246,9 +237,7 @@ export function TankModel() { modelTransformEvent.dispatch({ pitch, yaw }); } function handlePointerUp() { - Tankopedia.mutate((draft) => { - draft.controlsEnabled = true; - }); + controlsEnabledEvent.dispatch(true); window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointerup", handlePointerUp); } diff --git a/packages/website/src/hooks/useTankTransform.ts b/packages/website/src/hooks/useTankTransform.ts index 5063ff18b..2f68b8e3a 100644 --- a/packages/website/src/hooks/useTankTransform.ts +++ b/packages/website/src/hooks/useTankTransform.ts @@ -4,24 +4,24 @@ import { K_HAT, TrackDefinition, TurretDefinition, -} from '@blitzkit/core'; -import { invalidate } from '@react-three/fiber'; -import type { QuicklimeEvent } from 'quicklime'; -import { type RefObject, useEffect } from 'react'; -import { Euler, Group, Vector3 } from 'three'; -import { degToRad } from 'three/src/math/MathUtils.js'; -import { correctZYTuple } from '../core/blitz/correctZYTuple'; +} from "@blitzkit/core"; +import { invalidate } from "@react-three/fiber"; +import type { QuicklimeEvent } from "quicklime"; +import { type RefObject, useEffect } from "react"; +import { Euler, Group, Vector3 } from "three"; +import { degToRad } from "three/src/math/MathUtils.js"; +import { correctZYTuple } from "../core/blitz/correctZYTuple"; import { modelTransformEvent, type ModelTransformEventData, -} from '../core/blitzkit/modelTransform'; -import { useTankModelDefinition } from './useTankModelDefinition'; +} from "../core/blitzkit/modelTransform"; +import { useTankModelDefinition } from "./useTankModelDefinition"; export function useTankTransform( track: TrackDefinition, turret: TurretDefinition, turretContainer: RefObject, - gunContainer: RefObject, + gunContainer: RefObject ) { const tankModelDefinition = useTankModelDefinition(); @@ -37,7 +37,7 @@ export function useTankTransform( const gunRotation = new Euler(); function handleModelTransform( - event: QuicklimeEvent, + event: QuicklimeEvent ) { handleModelTransformInner(event.data); } @@ -70,13 +70,13 @@ export function useTankTransform( if (tankModelDefinition.initial_turret_rotation) { const initialPitch = -degToRad( - tankModelDefinition.initial_turret_rotation.pitch, + tankModelDefinition.initial_turret_rotation.pitch ); const initialYaw = -degToRad( - tankModelDefinition.initial_turret_rotation.yaw, + tankModelDefinition.initial_turret_rotation.yaw ); const initialRoll = -degToRad( - tankModelDefinition.initial_turret_rotation.roll, + tankModelDefinition.initial_turret_rotation.roll ); turretPosition diff --git a/packages/website/src/stores/tankopedia.ts b/packages/website/src/stores/tankopedia.ts index 03af6edd7..b699dc977 100644 --- a/packages/website/src/stores/tankopedia.ts +++ b/packages/website/src/stores/tankopedia.ts @@ -113,7 +113,6 @@ export const Tankopedia = new Varuna((model) => ({ editStatic: false, skills: createDefaultSkills(skillDefinitions), model, - controlsEnabled: true, xpMultiplier: 1, display: TankopediaDisplay.Model, }));