mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 12:09:51 +02:00
fix: use new quicklime controls enabled
This commit is contained in:
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);
|
||||||
|
|||||||
+7
-18
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
}));
|
}));
|
||||||
Reference in new issue
Block a user