feat: on click display

This commit is contained in:
TrèsAbhi committed 2024-02-02 16:08:41 -06:00
1 parent b01a03c6ce
commit c2e550e33d
5 files changed
+191 -9

No files matched your search

@@ -3,6 +3,7 @@ import { Button, Card, Flex, Tabs, Theme } from '@radix-ui/themes';
import { PerspectiveCamera } from '@react-three/drei';
import { Canvas } from '@react-three/fiber';
import { Suspense, use, useEffect, useRef, useState } from 'react';
import { ShotDisplay } from '../../../../../../components/ShotDisplay';
import { applyPitchYawLimits } from '../../../../../../core/blitz/applyPitchYawLimits';
import { modelDefinitions } from '../../../../../../core/blitzkrieg/modelDefinitions';
import { modelTransformEvent } from '../../../../../../core/blitzkrieg/modelTransform';
@@ -166,12 +167,22 @@ export function TankSandbox() {
<div style={{ height: '100%' }}>
{loadModel ? (
<Canvas shadows ref={canvas} onPointerDown={handlePointerDown}>
<Canvas
shadows
ref={canvas}
onPointerDown={handlePointerDown}
onPointerMissed={() => {
mutateTankopediaTemporary((draft) => {
draft.shot = undefined;
});
}}
>
<PerspectiveCamera makeDefault fov={25} far={32} />
<Controls />
<SceneProps />
<Suspense fallback={<ModelLoader />}>
<ShotDisplay />
<Lighting />
<TankModel />
<TankArmor />
@@ -144,6 +144,9 @@ export const TankModel = memo(() => {
mutateTankopediaPersistent((draft) => {
draft.model.visual.controlsEnabled = false;
});
mutateTankopediaTemporary((draft) => {
draft.shot = undefined;
});
window.addEventListener('pointermove', handlePointerMove);
window.addEventListener('pointerup', handlePointerUp);
@@ -208,6 +211,9 @@ export const TankModel = memo(() => {
mutateTankopediaPersistent((draft) => {
draft.model.visual.controlsEnabled = false;
});
mutateTankopediaTemporary((draft) => {
draft.shot = undefined;
});
window.addEventListener('pointermove', handlePointerMove);
window.addEventListener('pointerup', handlePointerUp);
}
@@ -272,6 +278,9 @@ export const TankModel = memo(() => {
mutateTankopediaPersistent((draft) => {
draft.model.visual.controlsEnabled = false;
});
mutateTankopediaTemporary((draft) => {
draft.shot = undefined;
});
pitch = physical.pitch;
yaw = physical.yaw;
window.addEventListener('pointermove', handlePointerMove);