fix: use new quicklime controls enabled

This commit is contained in:
TrèsAbhi committed 2025-10-02 10:19:50 -05:00
1 parent 320a764d45
commit aadc252e47
4 files changed
+29 -51

No files matched your search

@@ -7,6 +7,7 @@ import { hasEquipment } from "../../../core/blitzkit/hasEquipment";
import { modelTransformEvent } from "../../../core/blitzkit/modelTransform"; import { modelTransformEvent } from "../../../core/blitzkit/modelTransform";
import { nameToArmorId } from "../../../core/blitzkit/nameToArmorId"; import { nameToArmorId } from "../../../core/blitzkit/nameToArmorId";
import { resolveArmor } from "../../../core/blitzkit/resolveThickness"; import { resolveArmor } from "../../../core/blitzkit/resolveThickness";
import { controlsEnabledEvent } from "../../../core/controlsEnabled";
import { useArmor } from "../../../hooks/useArmor"; import { useArmor } from "../../../hooks/useArmor";
import { useModel } from "../../../hooks/useModel"; import { useModel } from "../../../hooks/useModel";
import { useTankModelDefinition } from "../../../hooks/useTankModelDefinition"; import { useTankModelDefinition } from "../../../hooks/useTankModelDefinition";
@@ -154,9 +155,8 @@ export const StaticArmor = memo<ArmorSceneProps>(({ thicknessRange }) => {
position.set(event.clientX, event.clientY); position.set(event.clientX, event.clientY);
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(false);
draft.controlsEnabled = false;
});
Tankopedia.mutate((draft) => { Tankopedia.mutate((draft) => {
draft.shot = undefined; draft.shot = undefined;
draft.highlightArmor = undefined; draft.highlightArmor = undefined;
@@ -192,9 +192,7 @@ export const StaticArmor = memo<ArmorSceneProps>(({ thicknessRange }) => {
modelTransformEvent.dispatch({ pitch, yaw }); modelTransformEvent.dispatch({ pitch, yaw });
} }
function handlePointerUp() { function handlePointerUp() {
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(true);
draft.controlsEnabled = true;
});
window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointermove", handlePointerMove);
window.removeEventListener("pointerup", handlePointerUp); window.removeEventListener("pointerup", handlePointerUp);
} }
@@ -243,9 +241,7 @@ export const StaticArmor = memo<ArmorSceneProps>(({ thicknessRange }) => {
function onPointerDown(event: ThreeEvent<PointerEvent>) { function onPointerDown(event: ThreeEvent<PointerEvent>) {
event.stopPropagation(); event.stopPropagation();
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(false);
draft.controlsEnabled = false;
});
Tankopedia.mutate((draft) => { Tankopedia.mutate((draft) => {
draft.shot = undefined; draft.shot = undefined;
draft.highlightArmor = undefined; draft.highlightArmor = undefined;
@@ -284,9 +280,7 @@ export const StaticArmor = memo<ArmorSceneProps>(({ thicknessRange }) => {
modelTransformEvent.dispatch({ pitch, yaw }); modelTransformEvent.dispatch({ pitch, yaw });
} }
function handlePointerUp() { function handlePointerUp() {
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(true);
draft.controlsEnabled = true;
});
window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointermove", handlePointerMove);
window.removeEventListener("pointerup", handlePointerUp); window.removeEventListener("pointerup", handlePointerUp);
} }
@@ -324,9 +318,7 @@ export const StaticArmor = memo<ArmorSceneProps>(({ thicknessRange }) => {
function onPointerDown(event: ThreeEvent<PointerEvent>) { function onPointerDown(event: ThreeEvent<PointerEvent>) {
event.stopPropagation(); event.stopPropagation();
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(false);
draft.controlsEnabled = false;
});
Tankopedia.mutate((draft) => { Tankopedia.mutate((draft) => {
draft.shot = undefined; draft.shot = undefined;
draft.highlightArmor = undefined; draft.highlightArmor = undefined;
@@ -364,9 +356,7 @@ export const StaticArmor = memo<ArmorSceneProps>(({ thicknessRange }) => {
modelTransformEvent.dispatch({ pitch, yaw }); modelTransformEvent.dispatch({ pitch, yaw });
} }
function handlePointerUp() { function handlePointerUp() {
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(true);
draft.controlsEnabled = true;
});
window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointermove", handlePointerMove);
window.removeEventListener("pointerup", handlePointerUp); window.removeEventListener("pointerup", handlePointerUp);
@@ -5,6 +5,7 @@ import { applyPitchYawLimits } from "../../../../../../core/blitz/applyPitchYawL
import { hasEquipment } from "../../../../../../core/blitzkit/hasEquipment"; import { hasEquipment } from "../../../../../../core/blitzkit/hasEquipment";
import { jsxTree } from "../../../../../../core/blitzkit/jsxTree"; import { jsxTree } from "../../../../../../core/blitzkit/jsxTree";
import { modelTransformEvent } from "../../../../../../core/blitzkit/modelTransform"; import { modelTransformEvent } from "../../../../../../core/blitzkit/modelTransform";
import { controlsEnabledEvent } from "../../../../../../core/controlsEnabled";
import { useModel } from "../../../../../../hooks/useModel"; import { useModel } from "../../../../../../hooks/useModel";
import { useTankModelDefinition } from "../../../../../../hooks/useTankModelDefinition"; import { useTankModelDefinition } from "../../../../../../hooks/useTankModelDefinition";
import { useTankTransform } from "../../../../../../hooks/useTankTransform"; import { useTankTransform } from "../../../../../../hooks/useTankTransform";
@@ -62,9 +63,7 @@ export function TankModel() {
position.set(event.clientX, event.clientY); position.set(event.clientX, event.clientY);
event.stopPropagation(); event.stopPropagation();
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(false);
draft.controlsEnabled = false;
});
window.addEventListener("pointermove", handlePointerMove); window.addEventListener("pointermove", handlePointerMove);
window.addEventListener("pointerup", handlePointerUp); window.addEventListener("pointerup", handlePointerUp);
@@ -81,9 +80,7 @@ export function TankModel() {
translateTexture(deltaX + deltaY); translateTexture(deltaX + deltaY);
} }
function handlePointerUp() { function handlePointerUp() {
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(true);
draft.controlsEnabled = true;
});
window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointermove", handlePointerMove);
window.removeEventListener("pointerup", handlePointerUp); window.removeEventListener("pointerup", handlePointerUp);
@@ -123,9 +120,7 @@ export function TankModel() {
position.set(event.clientX, event.clientY); position.set(event.clientX, event.clientY);
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(false);
draft.controlsEnabled = false;
});
Tankopedia.mutate((draft) => { Tankopedia.mutate((draft) => {
draft.shot = undefined; draft.shot = undefined;
draft.highlightArmor = undefined; draft.highlightArmor = undefined;
@@ -161,9 +156,7 @@ export function TankModel() {
modelTransformEvent.dispatch({ pitch, yaw }); modelTransformEvent.dispatch({ pitch, yaw });
} }
function handlePointerUp() { function handlePointerUp() {
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(true);
draft.controlsEnabled = true;
});
window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointermove", handlePointerMove);
window.removeEventListener("pointerup", handlePointerUp); window.removeEventListener("pointerup", handlePointerUp);
} }
@@ -205,9 +198,7 @@ export function TankModel() {
function onPointerDown(event: ThreeEvent<PointerEvent>) { function onPointerDown(event: ThreeEvent<PointerEvent>) {
event.stopPropagation(); event.stopPropagation();
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(false);
draft.controlsEnabled = false;
});
Tankopedia.mutate((draft) => { Tankopedia.mutate((draft) => {
draft.shot = undefined; draft.shot = undefined;
draft.highlightArmor = undefined; draft.highlightArmor = undefined;
@@ -246,9 +237,7 @@ export function TankModel() {
modelTransformEvent.dispatch({ pitch, yaw }); modelTransformEvent.dispatch({ pitch, yaw });
} }
function handlePointerUp() { function handlePointerUp() {
Tankopedia.mutate((draft) => { controlsEnabledEvent.dispatch(true);
draft.controlsEnabled = true;
});
window.removeEventListener("pointermove", handlePointerMove); window.removeEventListener("pointermove", handlePointerMove);
window.removeEventListener("pointerup", handlePointerUp); window.removeEventListener("pointerup", handlePointerUp);
} }
+14 -14
View File
@@ -4,24 +4,24 @@ import {
K_HAT, K_HAT,
TrackDefinition, TrackDefinition,
TurretDefinition, TurretDefinition,
} from '@blitzkit/core'; } from "@blitzkit/core";
import { invalidate } from '@react-three/fiber'; import { invalidate } from "@react-three/fiber";
import type { QuicklimeEvent } from 'quicklime'; import type { QuicklimeEvent } from "quicklime";
import { type RefObject, useEffect } from 'react'; import { type RefObject, useEffect } from "react";
import { Euler, Group, Vector3 } from 'three'; import { Euler, Group, Vector3 } from "three";
import { degToRad } from 'three/src/math/MathUtils.js'; import { degToRad } from "three/src/math/MathUtils.js";
import { correctZYTuple } from '../core/blitz/correctZYTuple'; import { correctZYTuple } from "../core/blitz/correctZYTuple";
import { import {
modelTransformEvent, modelTransformEvent,
type ModelTransformEventData, type ModelTransformEventData,
} from '../core/blitzkit/modelTransform'; } from "../core/blitzkit/modelTransform";
import { useTankModelDefinition } from './useTankModelDefinition'; import { useTankModelDefinition } from "./useTankModelDefinition";
export function useTankTransform( export function useTankTransform(
track: TrackDefinition, track: TrackDefinition,
turret: TurretDefinition, turret: TurretDefinition,
turretContainer: RefObject<Group>, turretContainer: RefObject<Group>,
gunContainer: RefObject<Group>, gunContainer: RefObject<Group>
) { ) {
const tankModelDefinition = useTankModelDefinition(); const tankModelDefinition = useTankModelDefinition();
@@ -37,7 +37,7 @@ export function useTankTransform(
const gunRotation = new Euler(); const gunRotation = new Euler();
function handleModelTransform( function handleModelTransform(
event: QuicklimeEvent<ModelTransformEventData>, event: QuicklimeEvent<ModelTransformEventData>
) { ) {
handleModelTransformInner(event.data); handleModelTransformInner(event.data);
} }
@@ -70,13 +70,13 @@ export function useTankTransform(
if (tankModelDefinition.initial_turret_rotation) { if (tankModelDefinition.initial_turret_rotation) {
const initialPitch = -degToRad( const initialPitch = -degToRad(
tankModelDefinition.initial_turret_rotation.pitch, tankModelDefinition.initial_turret_rotation.pitch
); );
const initialYaw = -degToRad( const initialYaw = -degToRad(
tankModelDefinition.initial_turret_rotation.yaw, tankModelDefinition.initial_turret_rotation.yaw
); );
const initialRoll = -degToRad( const initialRoll = -degToRad(
tankModelDefinition.initial_turret_rotation.roll, tankModelDefinition.initial_turret_rotation.roll
); );
turretPosition turretPosition
@@ -113,7 +113,6 @@ export const Tankopedia = new Varuna<Tankopedia, ModelDefinition>((model) => ({
editStatic: false, editStatic: false,
skills: createDefaultSkills(skillDefinitions), skills: createDefaultSkills(skillDefinitions),
model, model,
controlsEnabled: true,
xpMultiplier: 1, xpMultiplier: 1,
display: TankopediaDisplay.Model, display: TankopediaDisplay.Model,
})); }));