diff --git a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx index 24020f15b..da5c89efe 100644 --- a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx +++ b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx @@ -11,9 +11,9 @@ import { import { debounce } from 'lodash'; import { Fragment, use, useEffect, useRef, useState } from 'react'; import { lerp } from 'three/src/math/MathUtils'; -import { ShellButton } from '../../../../../../components/ModuleButtons/ShellButton'; import { applyPitchYawLimits } from '../../../../../../core/blitz/applyPitchYawLimits'; import { isExplosive } from '../../../../../../core/blitz/isExplosive'; +import { asset } from '../../../../../../core/blitzkit/asset'; import { coefficient } from '../../../../../../core/blitzkit/coefficient'; import { equipmentDefinitions } from '../../../../../../core/blitzkit/equipmentDefinitions'; import { modelDefinitions } from '../../../../../../core/blitzkit/modelDefinitions'; @@ -22,7 +22,6 @@ import { tankCharacteristics } from '../../../../../../core/blitzkit/tankCharact import { CREW_MEMBER_NAMES, GUN_TYPE_NAMES, - SHELL_NAMES, } from '../../../../../../core/blitzkit/tankDefinitions/constants'; import { useEquipment } from '../../../../../../hooks/useEquipment'; import { useFullScreen } from '../../../../../../hooks/useFullScreen'; @@ -129,12 +128,12 @@ export function Characteristics() { if (isFullScreen) return null; return ( - + Fire - + {/* {gun.shells.map((thisShell, index) => { return ( ); })} + */} + + + {gun.shells.map((thisShell, shellIndex) => ( + { + mutateDuel((draft) => { + draft.protagonist!.shell = thisShell; + }); + }} + > + + + ))} {GUN_TYPE_NAMES[gun.type]} diff --git a/src/app/tools/tankopedia/[id]/components/Model/CharacteristicsSection.tsx b/src/app/tools/tankopedia/[id]/components/Model/CharacteristicsSection.tsx new file mode 100644 index 000000000..f5cf224e4 --- /dev/null +++ b/src/app/tools/tankopedia/[id]/components/Model/CharacteristicsSection.tsx @@ -0,0 +1,21 @@ +import { Flex, Heading } from '@radix-ui/themes'; +import { Characteristics } from '../Characteristics'; +import { Consumables } from '../Characteristics/components/Consumables'; +import { Modules } from '../Characteristics/components/Modules'; + +export function CharacteristicsSection() { + return ( + + + + Configure + + + + + + + + + ); +} diff --git a/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx b/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx index ee854c87f..1e2596245 100644 --- a/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx +++ b/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx @@ -1,7 +1,7 @@ -import { EnterFullScreenIcon, ExitFullScreenIcon } from '@radix-ui/react-icons'; -import { Checkbox, Flex, Heading, IconButton, Text } from '@radix-ui/themes'; +import { Checkbox, Flex, Heading, Text } from '@radix-ui/themes'; import { TIER_ROMAN_NUMERALS } from '../../../../../../core/blitzkit/tankDefinitions/constants'; import { useFullScreen } from '../../../../../../hooks/useFullScreen'; +import { useWideFormat } from '../../../../../../hooks/useWideFormat'; import strings from '../../../../../../lang/en-US.json'; import { theme } from '../../../../../../stitches.config'; import { useDuel } from '../../../../../../stores/duel'; @@ -9,22 +9,27 @@ import mutateTankopediaPersistent, { useTankopediaPersistent, } from '../../../../../../stores/tankopedia'; import { TankSandbox } from './TankSandbox'; +import { Options } from './components/Options'; export function HeroSection() { const tank = useDuel((state) => state.protagonist!.tank); const mode = useTankopediaPersistent((state) => state.mode); const isFullScreen = useFullScreen(); + const wideFormat = useWideFormat(880); return ( - {tank.name} + {tank.name} Tier {TIER_ROMAN_NUMERALS[tank.tier]}{' '} {(strings.common.nations as Record)[tank.nation]}{' '} @@ -49,7 +54,7 @@ export function HeroSection() {
@@ -57,7 +62,6 @@ export function HeroSection() { style={{ width: '100%', height: '100%', - position: 'relative', }} > @@ -86,8 +90,9 @@ export function HeroSection() {
- {isFullScreen ? : } - + */} + +
); } diff --git a/src/app/tools/tankopedia/[id]/components/Model/components/Options.tsx b/src/app/tools/tankopedia/[id]/components/Model/components/Options.tsx index 3b57e436c..a820fbde2 100644 --- a/src/app/tools/tankopedia/[id]/components/Model/components/Options.tsx +++ b/src/app/tools/tankopedia/[id]/components/Model/components/Options.tsx @@ -4,9 +4,9 @@ import { EyeOpenIcon, GearIcon, } from '@radix-ui/react-icons'; -import { Button, DropdownMenu, Flex } from '@radix-ui/themes'; -import { RefObject } from 'react'; +import { DropdownMenu, Flex, IconButton } from '@radix-ui/themes'; import { Pose, poseEvent } from '../../../../../../../core/blitzkit/pose'; +import { useFullScreen } from '../../../../../../../hooks/useFullScreen'; import { useApp } from '../../../../../../../stores/app'; import mutateTankopediaPersistent, { mutateTankopediaTemporary, @@ -14,12 +14,8 @@ import mutateTankopediaPersistent, { } from '../../../../../../../stores/tankopedia'; import { ENVIRONMENTS } from '../../Lighting'; -interface OptionsProps { - isFullScreen: boolean; - canvasWrapper: RefObject; -} - -export function Options({ isFullScreen }: OptionsProps) { +export function Options() { + const isFullScreen = useFullScreen(); const showGrid = useTankopediaPersistent( (state) => state.model.visual.showGrid, ); @@ -54,9 +50,9 @@ export function Options({ isFullScreen }: OptionsProps) { > - + @@ -76,9 +72,9 @@ export function Options({ isFullScreen }: OptionsProps) { - + @@ -154,6 +150,7 @@ export function Options({ isFullScreen }: OptionsProps) { }); }} > + {/* TODO: consider removing this? */} View environment @@ -182,7 +179,8 @@ export function Options({ isFullScreen }: OptionsProps) { {fullScreenAvailable && ( - + )}
); diff --git a/src/app/tools/tankopedia/[id]/page.tsx b/src/app/tools/tankopedia/[id]/page.tsx index 7b8ffbfe5..126c205a4 100644 --- a/src/app/tools/tankopedia/[id]/page.tsx +++ b/src/app/tools/tankopedia/[id]/page.tsx @@ -6,6 +6,7 @@ import { assignDuelMember } from '../../../../core/blitzkit/assignDuelMember'; import { useWideFormat } from '../../../../hooks/useWideFormat'; import { mutateDuel, useDuel } from '../../../../stores/duel'; import { mutateTankopediaTemporary } from '../../../../stores/tankopedia'; +import { CharacteristicsSection } from './components/Model/CharacteristicsSection'; import { HeroSection } from './components/Model/HeroSection'; export default function Page({ params }: { params: { id: string } }) { @@ -59,6 +60,7 @@ export default function Page({ params }: { params: { id: string } }) { {assigned && ( <> + )}