diff --git a/public/assets/versions.json b/public/assets/versions.json index 548b5f56b..c8fddaf86 100644 --- a/public/assets/versions.json +++ b/public/assets/versions.json @@ -1 +1 @@ -["1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.12.5","1.12.6","1.12.7","1.12.8","1.12.9","1.13.0","1.13.1","1.13.2","1.13.3","1.14.0","1.14.1","1.14.2","1.14.3","1.14.4","1.15.0","1.15.1","1.15.10","1.15.11","1.15.12","1.15.13","1.15.2","1.15.3","1.15.4","1.15.5","1.15.6","1.15.7","1.15.8","1.15.9","1.16.0","1.16.1","1.16.2","1.16.3","1.16.4","1.17.0","1.17.1","1.17.2","1.18.0","1.18.1","1.18.2","1.18.3","1.19.0","1.19.1","1.19.2","1.19.3","1.19.4","1.19.5","1.19.6","1.20.0","1.20.1","1.20.2","1.20.3","1.20.4","1.20.5","1.21.0","1.21.1","1.21.2","1.3.0","1.3.1","1.3.2","1.3.3","1.4.0","1.4.1","1.5.0","1.5.1","1.5.2","1.5.3","1.5.4","1.6.0","1.7.0","1.7.1","1.7.2","1.7.3-1.7.4","1.7.5","1.7.6","1.7.7","1.8.0","1.8.1","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4","1.9.5"] \ No newline at end of file +["1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.12.1","1.12.2","1.12.3","1.12.4","1.12.5","1.12.6","1.12.7","1.12.8","1.12.9","1.13.0","1.13.1","1.13.2","1.13.3","1.14.0","1.14.1","1.14.2","1.14.3","1.14.4","1.15.0","1.15.1","1.15.10","1.15.11","1.15.12","1.15.13","1.15.2","1.15.3","1.15.4","1.15.5","1.15.6","1.15.7","1.15.8","1.15.9","1.16.0","1.16.1","1.16.2","1.16.3","1.16.4","1.17.0","1.17.1","1.17.2","1.18.0","1.18.1","1.18.2","1.18.3","1.19.0","1.19.1","1.19.2","1.19.3","1.19.4","1.19.5","1.19.6","1.20.0","1.20.1","1.20.2","1.20.3","1.20.4","1.20.5","1.21.0","1.21.1","1.21.2","1.21.3","1.3.0","1.3.1","1.3.2","1.3.3","1.4.0","1.4.1","1.5.0","1.5.1","1.5.2","1.5.3","1.5.4","1.6.0","1.7.0","1.7.1","1.7.2","1.7.3-1.7.4","1.7.5","1.7.6","1.7.7","1.8.0","1.8.1","1.9.0","1.9.1","1.9.2","1.9.3","1.9.4","1.9.5"] \ No newline at end of file diff --git a/src/app/tools/tankopedia/[id]/components/Model/components/TankModel.tsx b/src/app/tools/tankopedia/[id]/components/Model/components/TankModel.tsx index 93896afb1..aa6e4a29a 100644 --- a/src/app/tools/tankopedia/[id]/components/Model/components/TankModel.tsx +++ b/src/app/tools/tankopedia/[id]/components/Model/components/TankModel.tsx @@ -11,6 +11,7 @@ import { import { degToRad } from 'three/src/math/MathUtils'; import { I_HAT, J_HAT, K_HAT } from '../../../../../../../constants/axis'; import { applyPitchYawLimits } from '../../../../../../../core/blitz/applyPitchYawLimits'; +import { correctZYTuple } from '../../../../../../../core/blitz/correctZYTuple'; import { hasEquipment } from '../../../../../../../core/blitzkit/hasEquipment'; import { jsxTree } from '../../../../../../../core/blitzkit/jsxTree'; import { modelDefinitions } from '../../../../../../../core/blitzkit/modelDefinitions'; @@ -36,21 +37,9 @@ export const TankModel = memo(() => { const mutateTankopediaTemporary = TankopediaEphemeral.useMutation(); useEffect(() => { - const hullOrigin = new Vector3( - trackModelDefinition.origin[0], - trackModelDefinition.origin[1], - -trackModelDefinition.origin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const turretOrigin = new Vector3( - tankModelDefinition.turretOrigin[0], - tankModelDefinition.turretOrigin[1], - -tankModelDefinition.turretOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const gunOrigin = new Vector3( - turretModelDefinition.gunOrigin[0], - turretModelDefinition.gunOrigin[1], - -turretModelDefinition.gunOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); + const hullOrigin = correctZYTuple(trackModelDefinition.origin); + const turretOrigin = correctZYTuple(tankModelDefinition.turretOrigin); + const gunOrigin = correctZYTuple(turretModelDefinition.gunOrigin); const turretPosition = new Vector3(); const turretRotation = new Euler(); const gunPosition = new Vector3(); diff --git a/src/app/tools/tankopedia/[id]/components/QuickInputs/index.tsx b/src/app/tools/tankopedia/[id]/components/QuickInputs/index.tsx index cc5d08e70..bc29f25e2 100644 --- a/src/app/tools/tankopedia/[id]/components/QuickInputs/index.tsx +++ b/src/app/tools/tankopedia/[id]/components/QuickInputs/index.tsx @@ -1,5 +1,5 @@ import { HeightIcon, WidthIcon } from '@radix-ui/react-icons'; -import { Flex, TextField } from '@radix-ui/themes'; +import { Box, Flex, TextField } from '@radix-ui/themes'; import { use, useEffect, useRef } from 'react'; import { degToRad, radToDeg } from 'three/src/math/MathUtils'; import { applyPitchYawLimits } from '../../../../../../core/blitz/applyPitchYawLimits'; @@ -178,7 +178,7 @@ export function RotationInputs() { - {/* + - */} + ); } diff --git a/src/components/Armor/components/CoreArmorScene.tsx b/src/components/Armor/components/CoreArmorScene.tsx index f44dfe225..861b4d71f 100644 --- a/src/components/Armor/components/CoreArmorScene.tsx +++ b/src/components/Armor/components/CoreArmorScene.tsx @@ -2,6 +2,7 @@ import { memo, useEffect, useRef } from 'react'; import { Euler, Group, Vector3 } from 'three'; import { degToRad } from 'three/src/math/MathUtils'; import { I_HAT, J_HAT, K_HAT } from '../../../constants/axis'; +import { correctZYTuple } from '../../../core/blitz/correctZYTuple'; import { ModelTransformEventData, modelTransformEvent, @@ -26,21 +27,9 @@ export const CoreArmorScene = memo(() => { useEffect(() => { if (!modelDefinitions) return; - const hullOrigin = new Vector3( - trackModelDefinition.origin[0], - trackModelDefinition.origin[1], - -trackModelDefinition.origin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const turretOrigin = new Vector3( - tankModelDefinition.turretOrigin[0], - tankModelDefinition.turretOrigin[1], - -tankModelDefinition.turretOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const gunOrigin = new Vector3( - turretModelDefinition.gunOrigin[0], - turretModelDefinition.gunOrigin[1], - -turretModelDefinition.gunOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); + const hullOrigin = correctZYTuple(trackModelDefinition.origin); + const turretOrigin = correctZYTuple(tankModelDefinition.turretOrigin); + const gunOrigin = correctZYTuple(turretModelDefinition.gunOrigin); const turretPosition = new Vector3(); const turretRotation = new Euler(); const gunPosition = new Vector3(); @@ -119,21 +108,9 @@ export const CoreArmorScene = memo(() => { const trackModelDefinition = tankModelDefinition.tracks[track.id]; const turretModelDefinition = tankModelDefinition.turrets[turret.id]; const gunModelDefinition = turretModelDefinition.guns[gun.id]; - const hullOrigin = new Vector3( - trackModelDefinition.origin[0], - trackModelDefinition.origin[1], - -trackModelDefinition.origin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const turretOrigin = new Vector3( - tankModelDefinition.turretOrigin[0], - tankModelDefinition.turretOrigin[1], - -tankModelDefinition.turretOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const gunOrigin = new Vector3( - turretModelDefinition.gunOrigin[0], - turretModelDefinition.gunOrigin[1], - -turretModelDefinition.gunOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); + const hullOrigin = correctZYTuple(trackModelDefinition.origin); + const turretOrigin = correctZYTuple(tankModelDefinition.turretOrigin); + const gunOrigin = correctZYTuple(turretModelDefinition.gunOrigin); return ( (({ scene }) => { const trackModelDefinition = tankModelDefinition.tracks[track.id]; const turretModelDefinition = tankModelDefinition.turrets[turret.id]; const gunModelDefinition = turretModelDefinition.guns[gun.id]; - const hullOrigin = new Vector3( - trackModelDefinition.origin[0], - trackModelDefinition.origin[1], - -trackModelDefinition.origin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const turretOrigin = new Vector3( - tankModelDefinition.turretOrigin[0], - tankModelDefinition.turretOrigin[1], - -tankModelDefinition.turretOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const gunOrigin = new Vector3( - turretModelDefinition.gunOrigin[0], - turretModelDefinition.gunOrigin[1], - -turretModelDefinition.gunOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); + const hullOrigin = correctZYTuple(trackModelDefinition.origin); + const turretOrigin = correctZYTuple(tankModelDefinition.turretOrigin); + const gunOrigin = correctZYTuple(turretModelDefinition.gunOrigin); const maskOrigin = gunModelDefinition.mask === undefined ? undefined @@ -68,21 +57,10 @@ export const SpacedArmorScene = memo(({ scene }) => { useEffect(() => { if (!modelDefinitions) return; - const hullOrigin = new Vector3( - trackModelDefinition.origin[0], - trackModelDefinition.origin[1], - -trackModelDefinition.origin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const turretOrigin = new Vector3( - tankModelDefinition.turretOrigin[0], - tankModelDefinition.turretOrigin[1], - -tankModelDefinition.turretOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); - const gunOrigin = new Vector3( - turretModelDefinition.gunOrigin[0], - turretModelDefinition.gunOrigin[1], - -turretModelDefinition.gunOrigin[2], - ).applyAxisAngle(I_HAT, Math.PI / 2); + // BIG TODO: work out this repeat + const hullOrigin = correctZYTuple(trackModelDefinition.origin); + const turretOrigin = correctZYTuple(tankModelDefinition.turretOrigin); + const gunOrigin = correctZYTuple(turretModelDefinition.gunOrigin); const turretPosition = new Vector3(); const turretRotation = new Euler(); const gunPosition = new Vector3(); diff --git a/src/components/StaticArmor/components/StaticArmorScene.tsx b/src/components/StaticArmor/components/StaticArmorScene.tsx new file mode 100644 index 000000000..0c0217d28 --- /dev/null +++ b/src/components/StaticArmor/components/StaticArmorScene.tsx @@ -0,0 +1,3 @@ +export function StaticArmorScene() { + return null; +} diff --git a/src/components/StaticArmor/index.tsx b/src/components/StaticArmor/index.tsx index 1339e92cc..b4b0751c3 100644 --- a/src/components/StaticArmor/index.tsx +++ b/src/components/StaticArmor/index.tsx @@ -1,3 +1,5 @@ +import { StaticArmorScene } from './components/StaticArmorScene'; + export function StaticArmor() { - return null; + return ; } diff --git a/src/core/blitz/correctZYTuple.ts b/src/core/blitz/correctZYTuple.ts new file mode 100644 index 000000000..f0ebb92a4 --- /dev/null +++ b/src/core/blitz/correctZYTuple.ts @@ -0,0 +1,9 @@ +import { Vector3, Vector3Tuple } from 'three'; +import { I_HAT } from '../../constants/axis'; + +export function correctZYTuple(tuple: Vector3Tuple) { + return new Vector3(tuple[0], tuple[1], -tuple[2]).applyAxisAngle( + I_HAT, + Math.PI / 2, + ); +}