feat: search page

This commit is contained in:
TrèsAbhi committed 2024-09-21 20:26:58 -05:00
1 parent 408b561b75
commit ffa1395b50
70 files changed
+492 -468

No files matched your search

@@ -9,11 +9,7 @@ import {
} from '@radix-ui/themes';
import { Html } from '@react-three/drei';
import { useRef } from 'react';
import { radToDeg } from 'three/src/math/MathUtils';
import { resolveArmorIndex } from '../../../../../website-legacy/src/core/blitzkit/resolveArmorIndex';
import * as App from '../../../../../website-legacy/src/stores/app';
import * as Duel from '../../../../../website-legacy/src/stores/duel';
import * as TankopediaEphemeral from '../../../../../website-legacy/src/stores/tankopediaEphemeral';
import { TankopediaEphemeral } from '../../../stores/tankopediaEphemeral';
import { layerTypeNames } from './ShotDisplayCard';
import { ArmorType } from './SpacedArmorScene';
@@ -1,4 +1,4 @@
import { GroupProps } from '@react-three/fiber';
import type { GroupProps } from '@react-three/fiber';
import { forwardRef } from 'react';
import { Group } from 'three';
@@ -1,12 +1,11 @@
import { memo, useRef } from 'react';
import { Group } from 'three';
import { correctZYTuple } from '../../../../../website-legacy/src/core/blitz/correctZYTuple';
import { nameToArmorId } from '../../../../../website-legacy/src/core/blitzkit/nameToArmorId';
import { resolveArmor } from '../../../../../website-legacy/src/core/blitzkit/resolveThickness';
import { useArmor } from '../../../../../website-legacy/src/hooks/useArmor';
import { useTankModelDefinition } from '../../../../../website-legacy/src/hooks/useTankModelDefinition';
import { useTankTransform } from '../../../../../website-legacy/src/hooks/useTankTransform';
import * as Duel from '../../../../../website-legacy/src/stores/duel';
import { correctZYTuple } from '../../../core/blitz/correctZYTuple';
import { nameToArmorId } from '../../../core/blitzkit/nameToArmorId';
import { resolveArmor } from '../../../core/blitzkit/resolveThickness';
import { useArmor } from '../../../hooks/useArmor';
import { useTankModelDefinition } from '../../../hooks/useTankModelDefinition';
import { useTankTransform } from '../../../hooks/useTankTransform';
import { ModelTankWrapper } from './ModelTankWrapper';
import { PrimaryArmorSceneComponent } from './PrimaryArmorSceneComponent';
@@ -1,13 +1,12 @@
import { memo, useRef } from 'react';
import { Group, Plane, Scene, Vector3 } from 'three';
import { correctZYTuple } from '../../../../../website-legacy/src/core/blitz/correctZYTuple';
import { nameToArmorId } from '../../../../../website-legacy/src/core/blitzkit/nameToArmorId';
import { resolveArmor } from '../../../../../website-legacy/src/core/blitzkit/resolveThickness';
import { useArmor } from '../../../../../website-legacy/src/hooks/useArmor';
import { useModel } from '../../../../../website-legacy/src/hooks/useModel';
import { useTankModelDefinition } from '../../../../../website-legacy/src/hooks/useTankModelDefinition';
import { useTankTransform } from '../../../../../website-legacy/src/hooks/useTankTransform';
import * as Duel from '../../../../../website-legacy/src/stores/duel';
import { correctZYTuple } from '../../../core/blitz/correctZYTuple';
import { nameToArmorId } from '../../../core/blitzkit/nameToArmorId';
import { resolveArmor } from '../../../core/blitzkit/resolveThickness';
import { useArmor } from '../../../hooks/useArmor';
import { useModel } from '../../../hooks/useModel';
import { useTankModelDefinition } from '../../../hooks/useTankModelDefinition';
import { useTankTransform } from '../../../hooks/useTankTransform';
import { ModelTankWrapper } from './ModelTankWrapper';
import { SpacedArmorSceneComponent } from './SpacedArmorSceneComponent';
@@ -1,7 +1,7 @@
import {
ShellDefinition,
resolveNearPenetration,
resolvePenetrationCoefficient,
type ShellDefinition,
} from '@blitzkit/core';
import { useEffect } from 'react';
import {
@@ -11,10 +11,10 @@ import {
Plane,
ShaderMaterial,
} from 'three';
import { ArmorUserData, ExternalModuleVariant } from '../..';
import { hasEquipment } from '../../../../../../../../website-legacy/src/core/blitzkit/hasEquipment';
import { jsxTree } from '../../../../../../../../website-legacy/src/core/blitzkit/jsxTree';
import * as Duel from '../../../../../../../../website-legacy/src/stores/duel';
import type { ArmorUserData, ExternalModuleVariant } from '../..';
import { hasEquipment } from '../../../../../../core/blitzkit/hasEquipment';
import { jsxTree } from '../../../../../../core/blitzkit/jsxTree';
import { Duel, type EquipmentMatrix } from '../../../../../../stores/duel';
import { ArmorType } from '../../../SpacedArmorScene';
import fragmentShader from './shaders/fragment.glsl';
import vertexShader from './shaders/vertex.glsl';
@@ -56,7 +56,7 @@ export function SpacedArmorSubExternal({
);
}
async function handleProtagonistEquipmentChange(
equipment: Duel.EquipmentMatrix,
equipment: EquipmentMatrix,
) {
const duel = duelStore.getState();
const hasEnhancedArmor = await hasEquipment(
@@ -68,9 +68,7 @@ export function SpacedArmorSubExternal({
? thickness * 1.03
: thickness;
}
async function handleAntagonistEquipmentChange(
equipment: Duel.EquipmentMatrix,
) {
async function handleAntagonistEquipmentChange(equipment: EquipmentMatrix) {
const duel = duelStore.getState();
const shell = duel.antagonist.shell;
const penetration = resolveNearPenetration(shell.penetration);
@@ -1,20 +1,19 @@
import { normalizeAngleRad } from '@blitzkit/core';
import { ThreeEvent, useThree } from '@react-three/fiber';
import { useThree, type ThreeEvent } from '@react-three/fiber';
import { memo, useRef } from 'react';
import { Group, Plane, Vector2, Vector3 } from 'three';
import { applyPitchYawLimits } from '../../../../../website-legacy/src/core/blitz/applyPitchYawLimits';
import { correctZYTuple } from '../../../../../website-legacy/src/core/blitz/correctZYTuple';
import { hasEquipment } from '../../../../../website-legacy/src/core/blitzkit/hasEquipment';
import { modelTransformEvent } from '../../../../../website-legacy/src/core/blitzkit/modelTransform';
import { nameToArmorId } from '../../../../../website-legacy/src/core/blitzkit/nameToArmorId';
import { resolveArmor } from '../../../../../website-legacy/src/core/blitzkit/resolveThickness';
import { useArmor } from '../../../../../website-legacy/src/hooks/useArmor';
import { useModel } from '../../../../../website-legacy/src/hooks/useModel';
import { useTankModelDefinition } from '../../../../../website-legacy/src/hooks/useTankModelDefinition';
import { useTankTransform } from '../../../../../website-legacy/src/hooks/useTankTransform';
import * as Duel from '../../../../../website-legacy/src/stores/duel';
import * as TankopediaEphemeral from '../../../../../website-legacy/src/stores/tankopediaEphemeral';
import * as TankopediaPersistent from '../../../../../website-legacy/src/stores/tankopediaPersistent';
import { applyPitchYawLimits } from '../../../core/blitz/applyPitchYawLimits';
import { correctZYTuple } from '../../../core/blitz/correctZYTuple';
import { hasEquipment } from '../../../core/blitzkit/hasEquipment';
import { modelTransformEvent } from '../../../core/blitzkit/modelTransform';
import { nameToArmorId } from '../../../core/blitzkit/nameToArmorId';
import { resolveArmor } from '../../../core/blitzkit/resolveThickness';
import { useArmor } from '../../../hooks/useArmor';
import { useModel } from '../../../hooks/useModel';
import { useTankModelDefinition } from '../../../hooks/useTankModelDefinition';
import { useTankTransform } from '../../../hooks/useTankTransform';
import { TankopediaEphemeral } from '../../../stores/tankopediaEphemeral';
import { TankopediaPersistent } from '../../../stores/tankopediaPersistent';
import { ModelTankWrapper } from './ModelTankWrapper';
import { ArmorType } from './SpacedArmorScene';
import { StaticArmorSceneComponent } from './StaticArmorSceneComponent';
@@ -56,13 +55,13 @@ export const StaticArmor = memo<ArmorSceneProps>(({ thicknessRange }) => {
? undefined
: gunModelDefinition.mask + hullOrigin.y + turretOrigin.y + gunOrigin.y;
const showPrimaryArmor = TankopediaPersistent.use(
(state) => state.model.visual.showPrimaryArmor,
(state) => state.showPrimaryArmor,
);
const showSpacedArmor = TankopediaPersistent.use(
(state) => state.model.visual.showSpacedArmor,
(state) => state.showSpacedArmor,
);
const showExternalModules = TankopediaPersistent.use(
(state) => state.model.visual.showExternalModules,
(state) => state.showExternalModules,
);
const isDynamicArmorActive = Duel.use((state) =>
state.protagonist.consumables.includes(73),