fix: armor desync

This commit is contained in:
TrèsAbhi committed 2024-01-13 18:49:03 -06:00
1 parent ff15a37e10
commit 864c29933a
2 files changed
+8 -13

No files matched your search

@@ -1,5 +1,5 @@
import { GroupProps, useLoader } from '@react-three/fiber'; import { useLoader } from '@react-three/fiber';
import { useEffect, useRef, useState } from 'react'; import { memo, useEffect, useRef, useState } from 'react';
import { Euler, Group, Mesh, Vector3 } from 'three'; import { Euler, Group, Mesh, Vector3 } from 'three';
import { GLTFLoader } from 'three-stdlib'; import { GLTFLoader } from 'three-stdlib';
import { degToRad } from 'three/src/math/MathUtils'; import { degToRad } from 'three/src/math/MathUtils';
@@ -19,9 +19,7 @@ import { nameToArmorId } from '../../../../../../../core/blitzkrieg/nameToArmorI
import { resolveArmor } from '../../../../../../../core/blitzkrieg/resolveThickness'; import { resolveArmor } from '../../../../../../../core/blitzkrieg/resolveThickness';
import { useTankopedia } from '../../../../../../../stores/tankopedia'; import { useTankopedia } from '../../../../../../../stores/tankopedia';
interface TankArmorProps extends GroupProps {} export const TankArmor = memo(() => {
export function TankArmor({ ...props }: TankArmorProps) {
const wrapper = useRef<Group>(null); const wrapper = useRef<Group>(null);
const [awaitedModelDefinitions, setAwaitedModelDefinitions] = useState< const [awaitedModelDefinitions, setAwaitedModelDefinitions] = useState<
ModelDefinitions | undefined ModelDefinitions | undefined
@@ -153,7 +151,6 @@ export function TankArmor({ ...props }: TankArmorProps) {
return ( return (
<HeadsUpDisplay> <HeadsUpDisplay>
<group <group
{...props}
ref={wrapper} ref={wrapper}
rotation={[-Math.PI / 2, 0, 0]} rotation={[-Math.PI / 2, 0, 0]}
visible={initialTankopediaState.mode === 'armor'} visible={initialTankopediaState.mode === 'armor'}
@@ -288,4 +285,4 @@ export function TankArmor({ ...props }: TankArmorProps) {
</group> </group>
</HeadsUpDisplay> </HeadsUpDisplay>
); );
} });
@@ -1,5 +1,5 @@
import { ThreeEvent, useLoader, useThree } from '@react-three/fiber'; import { ThreeEvent, useLoader, useThree } from '@react-three/fiber';
import { useEffect, useRef, useState } from 'react'; import { memo, useEffect, useRef, useState } from 'react';
import { import {
Euler, Euler,
Group, Group,
@@ -27,9 +27,7 @@ import mutateTankopedia, {
useTankopedia, useTankopedia,
} from '../../../../../../../stores/tankopedia'; } from '../../../../../../../stores/tankopedia';
export function TankModel() { export const TankModel = memo(() => {
// "TypeError: dispatcher.use is not a function"
// const awaitedModelDefinitions = use(modelDefinitions);
const [awaitedModelDefinitions, setAwaitedModelDefinitions] = useState< const [awaitedModelDefinitions, setAwaitedModelDefinitions] = useState<
ModelDefinitions | undefined ModelDefinitions | undefined
>(undefined); >(undefined);
@@ -116,7 +114,7 @@ export function TankModel() {
return () => { return () => {
modelTransformEvent.off(handleModelTransform); modelTransformEvent.off(handleModelTransform);
}; };
}, [awaitedModelDefinitions]); });
if (!awaitedModelDefinitions) return; if (!awaitedModelDefinitions) return;
@@ -317,4 +315,4 @@ export function TankModel() {
</group> </group>
</group> </group>
); );
} });