From 6285f33989f973d38ffee7d7a0e0812dd18ba83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Fri, 6 Sep 2024 23:17:53 -0500 Subject: [PATCH] feat: migration 2 --- bun.lockb | Bin 196531 -> 202211 bytes package.json | 4 -- .../src/core/blitzstars/getStatsInPeriod.ts | 8 +-- packages/bot/src/core/blitzstars/index.ts | 1 + .../bot/src}/core/streams/wotbreplay.ts | 2 +- packages/core/package.json | 6 ++- .../protos/BattleResultsClient.proto | 0 .../protos/PlayerAvatarImage.proto | 0 .../protos/average_definitions.proto | 0 .../public => core}/protos/reviews.proto | 0 packages/core/src/blitz/constants.ts | 20 ++++++++ packages/core/src/blitz/index.ts | 1 + .../src/blitz/permanentSkills.tsx} | 0 .../core/src}/blitzkit/availableProvisions.ts | 2 +- .../blitzkit/averageDefinitions/constants.ts | 3 +- .../src}/blitzkit/averageDefinitions/index.ts | 10 ++-- .../checkConsumableProvisionInclusivity.ts | 4 +- .../core/src}/blitzkit/coefficient.ts | 0 .../src}/blitzkit/consumableDefinitions.ts | 0 .../core/src}/blitzkit/createDefaultSkills.ts | 4 +- .../src}/blitzkit/equipmentDefinitions.ts | 0 .../core/src}/blitzkit/eventManager.ts | 0 packages/core/src/blitzkit/index.ts | 18 +++++++ .../core/src/blitzkit}/isExplosive.ts | 2 +- .../core/src}/blitzkit/pose.ts | 0 .../src}/blitzkit/provisionDefinitions.ts | 2 +- .../resolvePenetrationCoefficient.ts | 0 .../core/src}/blitzkit/reviews.ts | 8 ++- .../core/src}/blitzkit/skillDefinitions.ts | 2 +- .../core/src}/blitzkit/sum.ts | 0 packages/core/src/blitzkit/superCompress.ts | 2 +- packages/core/src/blitzkit/superDecompress.ts | 2 +- .../core/src}/blitzkit/tankCharacteristics.ts | 17 +++---- .../core/src}/blitzkit/uniqueGuns.ts | 0 .../core/src/blitzkit}/youtubers.ts | 0 packages/core/src/index.ts | 5 ++ .../core/src}/math/NaNFallback.ts | 0 .../core/src/math}/axis.ts | 0 .../core/src}/math/formatCompact.ts | 0 packages/core/src/math/index.ts | 7 +++ .../core/src}/math/isNumber.ts | 0 .../core/src}/math/normalToEuler.ts | 2 +- .../core/src}/math/normalizeAngleRad.ts | 0 .../core/src}/math/numberToRomanNumeral.ts | 0 packages/core/src/protobuf/decodeProtobuf.ts | 9 ++++ .../core/src/protobuf/encodeProtobuf.ts | 6 +-- .../src/protobuf/encodeProtobufToBase64.ts | 11 ++++ packages/core/src/protobuf/index.ts | 4 ++ .../core/src/protobuf/lookupProtobufType.ts | 11 ++++ packages/core/src/radix/index.ts | 1 + .../core/src/radix}/var.ts | 0 .../core/src}/statistics/calculateWN8.ts | 0 .../statistics/compositeStats/constants.ts | 0 .../src}/statistics/compositeStats/index.ts | 8 ++- .../src}/statistics/deltaBkrlBlitzStats.ts | 0 .../core/src}/statistics/deltaTankStats.ts | 5 -- .../core/src}/statistics/filterStats.ts | 4 -- .../core/src}/statistics/getBkniPercentile.ts | 0 .../core/src}/statistics/getTierWeights.ts | 0 .../core/src}/statistics/getWN8Percentile.ts | 2 +- packages/core/src/statistics/index.ts | 10 ++++ .../core/src/statistics}/percentiles.ts | 0 .../core/src}/statistics/sumStats.ts | 1 - .../core/src}/streams/bkrl.ts | 0 .../core/src}/streams/buffer.ts | 0 .../core/src}/streams/cdon.ts | 0 .../core => packages/core/src}/streams/dds.ts | 0 .../core/src}/streams/dids.ts | 0 packages/core/src/streams/index.ts | 11 ++++ .../core => packages/core/src}/streams/pvr.ts | 0 .../core => packages/core/src}/streams/rts.ts | 0 .../core => packages/core/src}/streams/sc2.ts | 0 .../core => packages/core/src}/streams/scg.ts | 0 .../core/src}/streams/scpg.ts | 0 .../core/src}/streams/windows.ts | 0 .../core/src/zustand/createNextSafeStore.tsx | 3 ++ .../tools/compare/components/CompareTable.tsx | 6 +-- .../components/Consumables.tsx | 6 ++- .../Characteristics/components/Equipment.tsx | 2 +- .../Characteristics/components/Info.tsx | 11 ++-- .../components/Miscellaneous.tsx | 10 ++-- .../Characteristics/components/Modules.tsx | 47 ++++++++---------- .../Characteristics/components/Provisions.tsx | 3 +- .../components/Skills/index.tsx | 3 +- .../[id]/components/Characteristics/index.tsx | 27 +++++----- .../tankopedia/[id]/components/Control.tsx | 5 +- .../[id]/components/Model/GameModeSection.tsx | 18 ++++--- .../[id]/components/Model/HeroSection.tsx | 9 ++-- .../components/Model/MetaSection/index.tsx | 31 ++++++++---- .../[id]/components/Model/TankSandbox.tsx | 8 +-- .../components/Model/TankSandboxLoader.tsx | 2 +- .../Model/TechTreeSection/components/Node.tsx | 12 +++-- .../Model/TechTreeSection/index.tsx | 4 +- .../components/DynamicArmorSwitcher.tsx | 1 - .../Model/components/Options/index.tsx | 12 +---- .../components/Model/components/TankModel.tsx | 6 --- .../[id]/components/QuickInputs/index.tsx | 11 +--- .../[id]/components/ShotDisplaySection.tsx | 1 - .../[id]/components/VideoSection.tsx | 4 +- .../src/app/tools/tankopedia/[id]/layout.tsx | 14 +++--- .../src/app/tools/tankopedia/[id]/page.tsx | 4 +- .../Armor/components/ArmorPlateDisplay.tsx | 7 ++- .../Armor/components/ModelTankWrapper.tsx | 0 .../Armor/components/PrimaryArmorScene.tsx | 5 +- .../PrimaryArmorSceneComponent/index.tsx | 13 ++--- .../shaders/fragment.glsl | 0 .../shaders/vertex.glsl | 0 .../PrimaryArmorSceneComponent/target.tsx | 0 .../Armor/components/ShotDisplay.tsx | 2 - .../Armor/components/ShotDisplayCard.tsx | 11 ++-- .../Armor/components/SpacedArmorScene.tsx | 9 ++-- .../SpacedArmorSubExternal/index.tsx | 8 +-- .../shaders/fragment.glsl | 0 .../shaders/vertex.glsl | 0 .../components/SpacedArmorSubSpaced/index.tsx | 10 ++-- .../shaders/fragment.glsl | 0 .../SpacedArmorSubSpaced/shaders/vertex.glsl | 0 .../SpacedArmorSceneComponent/index.tsx | 13 ++--- .../Armor/components/StaticArmor.tsx | 18 +++---- .../components/StaticArmorSceneComponent.tsx | 11 +--- .../website/src}/components/Armor/index.tsx | 0 .../src}/components/ConsumablesManager.tsx | 2 +- .../src}/components/CrewSkillManager.tsx | 8 ++- .../src}/components/EquipmentManager.tsx | 3 +- .../ModuleButtons/ConsumableButton.tsx | 12 ++--- .../ModuleButtons/EquipmentButton.tsx | 4 +- .../GenericTankComponentButton.tsx | 0 .../components/ModuleButtons/ModuleButton.tsx | 0 .../ModuleButtons/ProvisionButton.tsx | 4 +- .../components/ModuleButtons/ShellButton.tsx | 0 .../ModuleButtons/TankComponentButton.tsx | 0 .../website/src}/components/ModuleManager.tsx | 0 .../components/WargamingAccountName.tsx | 1 - .../src}/components/ProvisionsManager.tsx | 0 .../src}/core/blitz/applyPitchYawLimits.ts | 2 +- .../website/src}/core/blitz/canSplash.ts | 2 - .../website/src}/core/blitz/correctZYTuple.ts | 0 .../website/src}/core/blitz/extractArmor.ts | 0 .../src}/core/blitz/extractModel/constants.ts | 0 .../src}/core/blitz/extractModel/index.ts | 0 .../website/src}/core/blitz/fetchBlitz.ts | 2 +- .../website/src}/core/blitz/generateStats.ts | 0 .../src}/core/blitz/getAccountAchievements.ts | 0 .../website/src}/core/blitz/getAccountInfo.ts | 0 .../src}/core/blitz/getClanAccountInfo.ts | 0 .../website/src}/core/blitz/getClanInfo.ts | 0 .../src}/core/blitz/getLeagueFromScore.ts | 0 .../website/src}/core/blitz/getRatingInfo.ts | 0 .../src}/core/blitz/getRatingLeague.ts | 0 .../src}/core/blitz/getRatingNeighbors.ts | 0 .../website/src}/core/blitz/getTankStats.ts | 0 .../src}/core/blitz/isOnGoingRatingSeason.ts | 0 .../website/src}/core/blitz/isValidBlitzId.ts | 0 .../website/src}/core/blitz/normalizeExtra.ts | 0 .../website/src}/core/blitz/normalizeIds.ts | 0 .../src}/core/blitz/normalizeLeagueIcon.ts | 0 .../website/src}/core/blitz/readBase64DVPL.ts | 0 .../website/src}/core/blitz/readDVPL.ts | 0 .../website/src}/core/blitz/readDVPLFile.ts | 0 .../website/src}/core/blitz/readStringDVPL.ts | 0 .../website/src}/core/blitz/readXMLDVPL.ts | 0 .../website/src}/core/blitz/readYAML.ts | 0 .../website/src}/core/blitz/readYAMLDVPL.ts | 0 .../core/blitz/regionSubdomainToRegion.ts | 0 .../core/blitz/regionToRegionSubdomain.ts | 0 .../website/src}/core/blitz/resolveTankId.ts | 0 .../src}/core/blitz/rotateDavaVector.ts | 2 +- .../core/blitz/searchClansAcrossRegions.ts | 0 .../core/blitz/searchCurrentRatingPlayers.ts | 0 .../searchPlayersAcrossRegions/constants.ts | 0 .../blitz/searchPlayersAcrossRegions/index.ts | 0 .../website/src}/core/blitz/toUniqueId.ts | 0 .../src}/core/blitz/unrotateDavaVector.ts | 2 +- .../website/src}/core/blitz/writeDVPL.ts | 0 .../src}/core/blitzkit/buildTechTreeLine.ts | 0 .../src}/core/blitzkit/commitAssets.ts | 0 .../src}/core/blitzkit/commitMultipleFiles.ts | 0 .../website/src}/core/blitzkit/context.ts | 0 .../website/src}/core/blitzkit/createBlob.ts | 0 .../src}/core/blitzkit/degressiveStat.ts | 0 .../core/blitzkit/discoveredIdDefinitions.ts | 0 .../website/src}/core/blitzkit/emblemURL.ts | 0 .../core/blitzkit/fetchPreDiscoveredIds.ts | 0 .../core/blitzkit/filtersToDescription.ts | 0 .../src}/core/blitzkit/flagUserActivity.ts | 0 .../blitzkit/getArchivedLatestSeasonNumber.ts | 0 .../core/blitzkit/getArchivedRatingInfo.ts | 0 .../blitzkit/getArchivedRatingLeaderboard.ts | 0 .../getArchivedRatingMidnightLeaderboard.ts | 0 .../src}/core/blitzkit/getBlitzFromDiscord.ts | 0 .../src}/core/blitzkit/getPeriodNow.ts | 0 .../src}/core/blitzkit/getPeriodStart.ts | 0 .../src}/core/blitzkit/getTankHistories.ts | 6 +-- .../src}/core/blitzkit/getTimeDaysAgo.ts | 0 .../src}/core/blitzkit/hasEquipment.ts | 2 +- .../website/src}/core/blitzkit/iconPng.ts | 0 .../website/src}/core/blitzkit/isLocalhost.ts | 0 .../website/src}/core/blitzkit/jsxToPng.ts | 0 .../src}/core/blitzkit/jsxToPngThreaded.ts | 0 .../core/blitzkit/jsxToSvg/Roboto-Black.ttf | Bin .../core/blitzkit/jsxToSvg/Roboto-Bold.ttf | Bin .../src}/core/blitzkit/jsxToSvg/Roboto.ttf | Bin .../src}/core/blitzkit/jsxToSvg/index.ts | 0 .../website/src}/core/blitzkit/jsxTree.tsx | 0 .../src}/core/blitzkit/linkBlitzAndDiscord.ts | 0 .../src}/core/blitzkit/mapDefinitions.ts | 0 .../src}/core/blitzkit/modelTransform.ts | 2 +- .../src}/core/blitzkit/nameToArmorId.ts | 0 .../core/blitzkit/normalizeBoundingBox.ts | 0 .../website/src}/core/blitzkit/octokit.ts | 0 .../website/src}/core/blitzkit/parseBkni.ts | 0 .../src}/core/blitzkit/patientFetch.ts | 0 .../src}/core/blitzkit/patientFetchJSON.ts | 0 .../website/src}/core/blitzkit/processes.ts | 0 .../src}/core/blitzkit/progressiveStat.ts | 0 .../src}/core/blitzkit/pushTankopediaPath.ts | 0 .../core/blitzkit/readTexture/constants.ts | 0 .../src}/core/blitzkit/readTexture/index.ts | 0 .../src}/core/blitzkit/renderConfiguration.ts | 0 .../src}/core/blitzkit/resolveAncestry.ts | 0 .../src}/core/blitzkit/resolveArmorIndex.ts | 0 .../website/src}/core/blitzkit/resolveDpm.ts | 0 .../src}/core/blitzkit/resolveReload.ts | 0 .../src}/core/blitzkit/resolveThickness.ts | 0 .../website/src}/core/blitzkit/svgToPng.ts | 0 .../src}/core/blitzkit/svgToPngThreaded.ts | 0 .../website/src}/core/blitzkit/tankIconPng.ts | 0 .../src}/core/blitzkit/tankToCompareMember.ts | 2 +- .../src}/core/blitzkit/tankToDuelMember.ts | 10 ++-- .../src}/core/blitzkit/unionBoundingBox.ts | 0 .../core/blitzkit/unwrapBlitzkitResponse.ts | 0 .../src}/core/blitzkit/withCORSProxy.ts | 0 .../blitzstars/getBlitzStarsLinkButton.ts | 0 .../core/blitzstars/getPlayerHistories.ts | 4 +- .../src}/core/blitzstars/getPlayerStats.ts | 0 .../src}/core/blitzstars/tankAverages.ts | 0 .../src}/core/discord/addClanChoices.ts | 0 .../src}/core/discord/addFilterOptions.ts | 0 .../src}/core/discord/addPeriodSubCommands.ts | 0 .../core/discord/addPeriodicFilterOptions.ts | 0 .../src}/core/discord/addRegionChoices.ts | 0 .../src}/core/discord/addTankChoices.ts | 0 .../src}/core/discord/addTierChoices.ts | 4 +- .../src}/core/discord/addUsernameChoices.ts | 0 .../discord/autocompleteClan/constants.ts | 0 .../core/discord/autocompleteClan/index.ts | 0 .../src}/core/discord/autocompleteTanks.ts | 0 .../src}/core/discord/autocompleteUsername.ts | 0 .../website/src}/core/discord/buttonLink.ts | 0 .../src}/core/discord/buttonPrimary.ts | 0 .../src}/core/discord/buttonRefresh.ts | 0 .../website/src}/core/discord/client.ts | 0 .../website/src}/core/discord/commandToURL.ts | 0 .../core/discord/createLocalizedCommand.ts | 0 .../website/src}/core/discord/embedInfo.ts | 0 .../src}/core/discord/embedNegative.ts | 0 .../src}/core/discord/embedPositive.ts | 0 .../website/src}/core/discord/embedWarning.ts | 0 .../core/discord/getCustomPeriodParams.ts | 0 .../src}/core/discord/getFiltersFromButton.ts | 0 .../core/discord/getFiltersFromCommand.ts | 0 .../src}/core/discord/getPeriodOptionName.ts | 0 .../src}/core/discord/localizationObject.ts | 0 .../website/src}/core/discord/manager.ts | 0 .../src}/core/discord/markdownTable.ts | 0 .../discord/normalizeInteractionReturnable.ts | 0 .../website/src}/core/discord/psa.ts | 0 .../core/discord/resolveClanFromCommand.ts | 0 .../core/discord/resolvePeriodFromButton.ts | 0 .../core/discord/resolvePeriodFromCommand.ts | 0 .../core/discord/resolvePlayerFromButton.ts | 0 .../resolvePlayerFromCommand/constants.ts | 0 .../discord/resolvePlayerFromCommand/index.ts | 0 .../website/src}/core/github/assetCommit.ts | 0 .../core/localization/strings/constants.ts | 2 - .../src}/core/localization/strings/index.ts | 1 - .../src}/core/localization/translator.ts | 0 .../website/src}/core/nivo/theme.ts | 0 .../src}/core/three/discardClippingPlane.ts | 0 packages/website/src/hooks/useArmor.ts | 1 - packages/website/src/hooks/useEquipment.ts | 4 +- .../src/hooks/useTankModelDefinition.ts | 2 +- .../website/src/hooks/useTankTransform.ts | 7 --- packages/website/src/stores/duel/index.ts | 12 ++--- .../website/src/stores/tankopediaEphemeral.ts | 5 +- packages/website/tsconfig.json | 13 ++--- {src => packages/website}/types/glsl.d.ts | 0 scripts/buildAssets/definitions.ts | 12 ++--- src/commands/breakdown/render.tsx | 2 +- src/commands/fullStats.tsx | 2 +- src/commands/stats.tsx | 2 +- src/components/AllStatsOverview/index.tsx | 2 +- src/components/Breakdown/components/Row.tsx | 6 +-- .../Breakdown/components/RowStat.tsx | 2 +- .../GenericAllStats/components/Card.tsx | 2 +- src/components/GenericAllStats/index.tsx | 2 +- src/components/GenericStats/index.tsx | 2 +- .../PercentileIndicator/constants.ts | 2 +- src/components/PercentileIndicator/index.tsx | 2 +- .../blitzstars/getStatsInPeriod/constants.ts | 21 -------- src/core/protobuf/decode.ts | 9 ---- src/core/protobuf/encodeToBase64.ts | 11 ---- src/core/protobuf/lookup.ts | 11 ---- src/types/tanksStats.ts | 2 +- tsconfig.json | 33 +++++++++++- 305 files changed, 414 insertions(+), 414 deletions(-) rename src/core/blitzstars/getStatsInPeriod/index.ts => packages/bot/src/core/blitzstars/getStatsInPeriod.ts (93%) create mode 100644 packages/bot/src/core/blitzstars/index.ts rename {src => packages/bot/src}/core/streams/wotbreplay.ts (96%) rename packages/{website/public => core}/protos/BattleResultsClient.proto (100%) rename packages/{website/public => core}/protos/PlayerAvatarImage.proto (100%) rename packages/{website/public => core}/protos/average_definitions.proto (100%) rename packages/{website/public => core}/protos/reviews.proto (100%) rename packages/{website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Skills/constants.tsx => core/src/blitz/permanentSkills.tsx} (100%) rename {src/core => packages/core/src}/blitzkit/availableProvisions.ts (82%) rename {src/core => packages/core/src}/blitzkit/averageDefinitions/constants.ts (71%) rename {src/core => packages/core/src}/blitzkit/averageDefinitions/index.ts (84%) rename {src/core => packages/core/src}/blitzkit/checkConsumableProvisionInclusivity.ts (89%) rename {src/core => packages/core/src}/blitzkit/coefficient.ts (100%) rename {src/core => packages/core/src}/blitzkit/consumableDefinitions.ts (100%) rename {src/core => packages/core/src}/blitzkit/createDefaultSkills.ts (64%) rename {src/core => packages/core/src}/blitzkit/equipmentDefinitions.ts (100%) rename {src/core => packages/core/src}/blitzkit/eventManager.ts (100%) rename {src/core/blitz => packages/core/src/blitzkit}/isExplosive.ts (69%) rename {src/core => packages/core/src}/blitzkit/pose.ts (100%) rename {src/core => packages/core/src}/blitzkit/provisionDefinitions.ts (85%) rename {src/core/blitz => packages/core/src/blitzkit}/resolvePenetrationCoefficient.ts (100%) rename {src/core => packages/core/src}/blitzkit/reviews.ts (71%) rename {src/core => packages/core/src}/blitzkit/skillDefinitions.ts (83%) rename {src/core => packages/core/src}/blitzkit/sum.ts (100%) rename {src/core => packages/core/src}/blitzkit/tankCharacteristics.ts (96%) rename {src/core => packages/core/src}/blitzkit/uniqueGuns.ts (100%) rename {src/constants => packages/core/src/blitzkit}/youtubers.ts (100%) rename {src/core => packages/core/src}/math/NaNFallback.ts (100%) rename {src/constants => packages/core/src/math}/axis.ts (100%) rename {src/core => packages/core/src}/math/formatCompact.ts (100%) create mode 100644 packages/core/src/math/index.ts rename {src/core => packages/core/src}/math/isNumber.ts (100%) rename {src/core => packages/core/src}/math/normalToEuler.ts (88%) rename {src/core => packages/core/src}/math/normalizeAngleRad.ts (100%) rename {src/core => packages/core/src}/math/numberToRomanNumeral.ts (100%) create mode 100644 packages/core/src/protobuf/decodeProtobuf.ts rename src/core/protobuf/encode.ts => packages/core/src/protobuf/encodeProtobuf.ts (60%) create mode 100644 packages/core/src/protobuf/encodeProtobufToBase64.ts create mode 100644 packages/core/src/protobuf/index.ts create mode 100644 packages/core/src/protobuf/lookupProtobufType.ts create mode 100644 packages/core/src/radix/index.ts rename {src/core/blitzkit => packages/core/src/radix}/var.ts (100%) rename {src/core => packages/core/src}/statistics/calculateWN8.ts (100%) rename {src/core => packages/core/src}/statistics/compositeStats/constants.ts (100%) rename {src/core => packages/core/src}/statistics/compositeStats/index.ts (93%) rename {src/core => packages/core/src}/statistics/deltaBkrlBlitzStats.ts (100%) rename {src/core => packages/core/src}/statistics/deltaTankStats.ts (94%) rename {src/core => packages/core/src}/statistics/filterStats.ts (91%) rename {src/core => packages/core/src}/statistics/getBkniPercentile.ts (100%) rename {src/core => packages/core/src}/statistics/getTierWeights.ts (100%) rename {src/core => packages/core/src}/statistics/getWN8Percentile.ts (90%) create mode 100644 packages/core/src/statistics/index.ts rename {src/constants => packages/core/src/statistics}/percentiles.ts (100%) rename {src/core => packages/core/src}/statistics/sumStats.ts (94%) rename {src/core => packages/core/src}/streams/bkrl.ts (100%) rename {src/core => packages/core/src}/streams/buffer.ts (100%) rename {src/core => packages/core/src}/streams/cdon.ts (100%) rename {src/core => packages/core/src}/streams/dds.ts (100%) rename {src/core => packages/core/src}/streams/dids.ts (100%) create mode 100644 packages/core/src/streams/index.ts rename {src/core => packages/core/src}/streams/pvr.ts (100%) rename {src/core => packages/core/src}/streams/rts.ts (100%) rename {src/core => packages/core/src}/streams/sc2.ts (100%) rename {src/core => packages/core/src}/streams/scg.ts (100%) rename {src/core => packages/core/src}/streams/scpg.ts (100%) rename {src/core => packages/core/src}/streams/windows.ts (100%) rename {src => packages/website/src}/components/Armor/components/ArmorPlateDisplay.tsx (95%) rename {src => packages/website/src}/components/Armor/components/ModelTankWrapper.tsx (100%) rename {src => packages/website/src}/components/Armor/components/PrimaryArmorScene.tsx (94%) rename {src => packages/website/src}/components/Armor/components/PrimaryArmorSceneComponent/index.tsx (87%) rename {src => packages/website/src}/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl (100%) rename {src => packages/website/src}/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl (100%) rename {src => packages/website/src}/components/Armor/components/PrimaryArmorSceneComponent/target.tsx (100%) rename {src => packages/website/src}/components/Armor/components/ShotDisplay.tsx (98%) rename {src => packages/website/src}/components/Armor/components/ShotDisplayCard.tsx (94%) rename {src => packages/website/src}/components/Armor/components/SpacedArmorScene.tsx (94%) rename {src => packages/website/src}/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx (87%) rename {src => packages/website/src}/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl (100%) rename {src => packages/website/src}/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl (100%) rename {src => packages/website/src}/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx (86%) rename {src => packages/website/src}/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl (100%) rename {src => packages/website/src}/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl (100%) rename {src => packages/website/src}/components/Armor/components/SpacedArmorSceneComponent/index.tsx (94%) rename {src => packages/website/src}/components/Armor/components/StaticArmor.tsx (94%) rename {src => packages/website/src}/components/Armor/components/StaticArmorSceneComponent.tsx (93%) rename {src => packages/website/src}/components/Armor/index.tsx (100%) rename {src => packages/website/src}/components/ConsumablesManager.tsx (95%) rename {src => packages/website/src}/components/CrewSkillManager.tsx (81%) rename {src => packages/website/src}/components/EquipmentManager.tsx (93%) rename {src => packages/website/src}/components/ModuleButtons/ConsumableButton.tsx (88%) rename {src => packages/website/src}/components/ModuleButtons/EquipmentButton.tsx (82%) rename {src => packages/website/src}/components/ModuleButtons/GenericTankComponentButton.tsx (100%) rename {src => packages/website/src}/components/ModuleButtons/ModuleButton.tsx (100%) rename {src => packages/website/src}/components/ModuleButtons/ProvisionButton.tsx (81%) rename {src => packages/website/src}/components/ModuleButtons/ShellButton.tsx (100%) rename {src => packages/website/src}/components/ModuleButtons/TankComponentButton.tsx (100%) rename {src => packages/website/src}/components/ModuleManager.tsx (100%) rename {src => packages/website/src}/components/ProvisionsManager.tsx (100%) rename {src => packages/website/src}/core/blitz/applyPitchYawLimits.ts (97%) rename {src => packages/website/src}/core/blitz/canSplash.ts (60%) rename {src => packages/website/src}/core/blitz/correctZYTuple.ts (100%) rename {src => packages/website/src}/core/blitz/extractArmor.ts (100%) rename {src => packages/website/src}/core/blitz/extractModel/constants.ts (100%) rename {src => packages/website/src}/core/blitz/extractModel/index.ts (100%) rename {src => packages/website/src}/core/blitz/fetchBlitz.ts (97%) rename {src => packages/website/src}/core/blitz/generateStats.ts (100%) rename {src => packages/website/src}/core/blitz/getAccountAchievements.ts (100%) rename {src => packages/website/src}/core/blitz/getAccountInfo.ts (100%) rename {src => packages/website/src}/core/blitz/getClanAccountInfo.ts (100%) rename {src => packages/website/src}/core/blitz/getClanInfo.ts (100%) rename {src => packages/website/src}/core/blitz/getLeagueFromScore.ts (100%) rename {src => packages/website/src}/core/blitz/getRatingInfo.ts (100%) rename {src => packages/website/src}/core/blitz/getRatingLeague.ts (100%) rename {src => packages/website/src}/core/blitz/getRatingNeighbors.ts (100%) rename {src => packages/website/src}/core/blitz/getTankStats.ts (100%) rename {src => packages/website/src}/core/blitz/isOnGoingRatingSeason.ts (100%) rename {src => packages/website/src}/core/blitz/isValidBlitzId.ts (100%) rename {src => packages/website/src}/core/blitz/normalizeExtra.ts (100%) rename {src => packages/website/src}/core/blitz/normalizeIds.ts (100%) rename {src => packages/website/src}/core/blitz/normalizeLeagueIcon.ts (100%) rename {src => packages/website/src}/core/blitz/readBase64DVPL.ts (100%) rename {src => packages/website/src}/core/blitz/readDVPL.ts (100%) rename {src => packages/website/src}/core/blitz/readDVPLFile.ts (100%) rename {src => packages/website/src}/core/blitz/readStringDVPL.ts (100%) rename {src => packages/website/src}/core/blitz/readXMLDVPL.ts (100%) rename {src => packages/website/src}/core/blitz/readYAML.ts (100%) rename {src => packages/website/src}/core/blitz/readYAMLDVPL.ts (100%) rename {src => packages/website/src}/core/blitz/regionSubdomainToRegion.ts (100%) rename {src => packages/website/src}/core/blitz/regionToRegionSubdomain.ts (100%) rename {src => packages/website/src}/core/blitz/resolveTankId.ts (100%) rename {src => packages/website/src}/core/blitz/rotateDavaVector.ts (72%) rename {src => packages/website/src}/core/blitz/searchClansAcrossRegions.ts (100%) rename {src => packages/website/src}/core/blitz/searchCurrentRatingPlayers.ts (100%) rename {src => packages/website/src}/core/blitz/searchPlayersAcrossRegions/constants.ts (100%) rename {src => packages/website/src}/core/blitz/searchPlayersAcrossRegions/index.ts (100%) rename {src => packages/website/src}/core/blitz/toUniqueId.ts (100%) rename {src => packages/website/src}/core/blitz/unrotateDavaVector.ts (72%) rename {src => packages/website/src}/core/blitz/writeDVPL.ts (100%) rename {src => packages/website/src}/core/blitzkit/buildTechTreeLine.ts (100%) rename {src => packages/website/src}/core/blitzkit/commitAssets.ts (100%) rename {src => packages/website/src}/core/blitzkit/commitMultipleFiles.ts (100%) rename {src => packages/website/src}/core/blitzkit/context.ts (100%) rename {src => packages/website/src}/core/blitzkit/createBlob.ts (100%) rename {src => packages/website/src}/core/blitzkit/degressiveStat.ts (100%) rename {src => packages/website/src}/core/blitzkit/discoveredIdDefinitions.ts (100%) rename {src => packages/website/src}/core/blitzkit/emblemURL.ts (100%) rename {src => packages/website/src}/core/blitzkit/fetchPreDiscoveredIds.ts (100%) rename {src => packages/website/src}/core/blitzkit/filtersToDescription.ts (100%) rename {src => packages/website/src}/core/blitzkit/flagUserActivity.ts (100%) rename {src => packages/website/src}/core/blitzkit/getArchivedLatestSeasonNumber.ts (100%) rename {src => packages/website/src}/core/blitzkit/getArchivedRatingInfo.ts (100%) rename {src => packages/website/src}/core/blitzkit/getArchivedRatingLeaderboard.ts (100%) rename {src => packages/website/src}/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts (100%) rename {src => packages/website/src}/core/blitzkit/getBlitzFromDiscord.ts (100%) rename {src => packages/website/src}/core/blitzkit/getPeriodNow.ts (100%) rename {src => packages/website/src}/core/blitzkit/getPeriodStart.ts (100%) rename {src => packages/website/src}/core/blitzkit/getTankHistories.ts (94%) rename {src => packages/website/src}/core/blitzkit/getTimeDaysAgo.ts (100%) rename {src => packages/website/src}/core/blitzkit/hasEquipment.ts (87%) rename {src => packages/website/src}/core/blitzkit/iconPng.ts (100%) rename {src => packages/website/src}/core/blitzkit/isLocalhost.ts (100%) rename {src => packages/website/src}/core/blitzkit/jsxToPng.ts (100%) rename {src => packages/website/src}/core/blitzkit/jsxToPngThreaded.ts (100%) rename {src => packages/website/src}/core/blitzkit/jsxToSvg/Roboto-Black.ttf (100%) rename {src => packages/website/src}/core/blitzkit/jsxToSvg/Roboto-Bold.ttf (100%) rename {src => packages/website/src}/core/blitzkit/jsxToSvg/Roboto.ttf (100%) rename {src => packages/website/src}/core/blitzkit/jsxToSvg/index.ts (100%) rename {src => packages/website/src}/core/blitzkit/jsxTree.tsx (100%) rename {src => packages/website/src}/core/blitzkit/linkBlitzAndDiscord.ts (100%) rename {src => packages/website/src}/core/blitzkit/mapDefinitions.ts (100%) rename {src => packages/website/src}/core/blitzkit/modelTransform.ts (77%) rename {src => packages/website/src}/core/blitzkit/nameToArmorId.ts (100%) rename {src => packages/website/src}/core/blitzkit/normalizeBoundingBox.ts (100%) rename {src => packages/website/src}/core/blitzkit/octokit.ts (100%) rename {src => packages/website/src}/core/blitzkit/parseBkni.ts (100%) rename {src => packages/website/src}/core/blitzkit/patientFetch.ts (100%) rename {src => packages/website/src}/core/blitzkit/patientFetchJSON.ts (100%) rename {src => packages/website/src}/core/blitzkit/processes.ts (100%) rename {src => packages/website/src}/core/blitzkit/progressiveStat.ts (100%) rename {src => packages/website/src}/core/blitzkit/pushTankopediaPath.ts (100%) rename {src => packages/website/src}/core/blitzkit/readTexture/constants.ts (100%) rename {src => packages/website/src}/core/blitzkit/readTexture/index.ts (100%) rename {src => packages/website/src}/core/blitzkit/renderConfiguration.ts (100%) rename {src => packages/website/src}/core/blitzkit/resolveAncestry.ts (100%) rename {src => packages/website/src}/core/blitzkit/resolveArmorIndex.ts (100%) rename {src => packages/website/src}/core/blitzkit/resolveDpm.ts (100%) rename {src => packages/website/src}/core/blitzkit/resolveReload.ts (100%) rename {src => packages/website/src}/core/blitzkit/resolveThickness.ts (100%) rename {src => packages/website/src}/core/blitzkit/svgToPng.ts (100%) rename {src => packages/website/src}/core/blitzkit/svgToPngThreaded.ts (100%) rename {src => packages/website/src}/core/blitzkit/tankIconPng.ts (100%) rename {src => packages/website/src}/core/blitzkit/tankToCompareMember.ts (83%) rename {src => packages/website/src}/core/blitzkit/tankToDuelMember.ts (76%) rename {src => packages/website/src}/core/blitzkit/unionBoundingBox.ts (100%) rename {src => packages/website/src}/core/blitzkit/unwrapBlitzkitResponse.ts (100%) rename {src => packages/website/src}/core/blitzkit/withCORSProxy.ts (100%) rename {src => packages/website/src}/core/blitzstars/getBlitzStarsLinkButton.ts (100%) rename {src => packages/website/src}/core/blitzstars/getPlayerHistories.ts (93%) rename {src => packages/website/src}/core/blitzstars/getPlayerStats.ts (100%) rename {src => packages/website/src}/core/blitzstars/tankAverages.ts (100%) rename {src => packages/website/src}/core/discord/addClanChoices.ts (100%) rename {src => packages/website/src}/core/discord/addFilterOptions.ts (100%) rename {src => packages/website/src}/core/discord/addPeriodSubCommands.ts (100%) rename {src => packages/website/src}/core/discord/addPeriodicFilterOptions.ts (100%) rename {src => packages/website/src}/core/discord/addRegionChoices.ts (100%) rename {src => packages/website/src}/core/discord/addTankChoices.ts (100%) rename {src => packages/website/src}/core/discord/addTierChoices.ts (89%) rename {src => packages/website/src}/core/discord/addUsernameChoices.ts (100%) rename {src => packages/website/src}/core/discord/autocompleteClan/constants.ts (100%) rename {src => packages/website/src}/core/discord/autocompleteClan/index.ts (100%) rename {src => packages/website/src}/core/discord/autocompleteTanks.ts (100%) rename {src => packages/website/src}/core/discord/autocompleteUsername.ts (100%) rename {src => packages/website/src}/core/discord/buttonLink.ts (100%) rename {src => packages/website/src}/core/discord/buttonPrimary.ts (100%) rename {src => packages/website/src}/core/discord/buttonRefresh.ts (100%) rename {src => packages/website/src}/core/discord/client.ts (100%) rename {src => packages/website/src}/core/discord/commandToURL.ts (100%) rename {src => packages/website/src}/core/discord/createLocalizedCommand.ts (100%) rename {src => packages/website/src}/core/discord/embedInfo.ts (100%) rename {src => packages/website/src}/core/discord/embedNegative.ts (100%) rename {src => packages/website/src}/core/discord/embedPositive.ts (100%) rename {src => packages/website/src}/core/discord/embedWarning.ts (100%) rename {src => packages/website/src}/core/discord/getCustomPeriodParams.ts (100%) rename {src => packages/website/src}/core/discord/getFiltersFromButton.ts (100%) rename {src => packages/website/src}/core/discord/getFiltersFromCommand.ts (100%) rename {src => packages/website/src}/core/discord/getPeriodOptionName.ts (100%) rename {src => packages/website/src}/core/discord/localizationObject.ts (100%) rename {src => packages/website/src}/core/discord/manager.ts (100%) rename {src => packages/website/src}/core/discord/markdownTable.ts (100%) rename {src => packages/website/src}/core/discord/normalizeInteractionReturnable.ts (100%) rename {src => packages/website/src}/core/discord/psa.ts (100%) rename {src => packages/website/src}/core/discord/resolveClanFromCommand.ts (100%) rename {src => packages/website/src}/core/discord/resolvePeriodFromButton.ts (100%) rename {src => packages/website/src}/core/discord/resolvePeriodFromCommand.ts (100%) rename {src => packages/website/src}/core/discord/resolvePlayerFromButton.ts (100%) rename {src => packages/website/src}/core/discord/resolvePlayerFromCommand/constants.ts (100%) rename {src => packages/website/src}/core/discord/resolvePlayerFromCommand/index.ts (100%) rename {src => packages/website/src}/core/github/assetCommit.ts (100%) rename {src => packages/website/src}/core/localization/strings/constants.ts (68%) rename {src => packages/website/src}/core/localization/strings/index.ts (92%) rename {src => packages/website/src}/core/localization/translator.ts (100%) rename {src => packages/website/src}/core/nivo/theme.ts (100%) rename {src => packages/website/src}/core/three/discardClippingPlane.ts (100%) rename {src => packages/website}/types/glsl.d.ts (100%) delete mode 100644 src/core/blitzstars/getStatsInPeriod/constants.ts delete mode 100644 src/core/protobuf/decode.ts delete mode 100644 src/core/protobuf/encodeToBase64.ts delete mode 100644 src/core/protobuf/lookup.ts diff --git a/bun.lockb b/bun.lockb index 8f14b447516971be8c9edfc78d348aa246121769..748c3458b5e0575d9a401c8dd726c0ef131d1d22 100644 GIT binary patch delta 21535 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 L*?mBG((69}v@Vb{ delta 18143 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 diff --git a/package.json b/package.json index 6dccd3980..d20962e93 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "@resvg/resvg-js": "^2.6.2", "@types/three": "^0.160.0", "@vanilla-extract/css": "^1.15.5", - "adm-zip": "^0.5.16", "bepaint": "^0.1.0-beta.3", "csv-parse": "^5.5.6", "decompress": "^4.2.1", @@ -53,10 +52,8 @@ "markdown-escape": "^2.0.0", "markdown-to-jsx": "^7.5.0", "parse-dds": "^1.2.1", - "pickleparser": "^0.2.1", "postprocessing": "^6.36.0", "progress": "^2.0.3", - "protobufjs": "^7.4.0", "satori": "^0.10.14", "sharp": "^0.33.5", "three-stdlib": "^2.32.2", @@ -65,7 +62,6 @@ }, "_devDependencies": { "@total-typescript/ts-reset": "^0.5.1", - "@types/adm-zip": "^0.5.5", "@types/bun": "latest", "@types/decompress": "^4.2.7", "@types/escape-html": "^1.0.4", diff --git a/src/core/blitzstars/getStatsInPeriod/index.ts b/packages/bot/src/core/blitzstars/getStatsInPeriod.ts similarity index 93% rename from src/core/blitzstars/getStatsInPeriod/index.ts rename to packages/bot/src/core/blitzstars/getStatsInPeriod.ts index 66ee8e8e6..a718705bf 100644 --- a/src/core/blitzstars/getStatsInPeriod/index.ts +++ b/packages/bot/src/core/blitzstars/getStatsInPeriod.ts @@ -1,10 +1,10 @@ import { Locale } from 'discord.js'; -import { Region } from '../../../constants/regions'; +import { Region } from '../../../../../src/constants/regions'; import getTankHistories, { TankHistories, TankHistoryRaw, -} from '../../blitzkit/getTankHistories'; -import { BlitzStats } from '../../statistics/compositeStats/constants'; +} from '../../../../../src/core/blitzkit/getTankHistories'; +import { BlitzStats } from '../../../../../src/core/statistics/compositeStats/constants'; import { emptyAllStats } from './constants'; const emptyTankHistoryNode: TankHistoryRaw = { @@ -106,3 +106,5 @@ export default async function getStatsInPeriod( return { diff, order } satisfies DiffedTankStats; } + +export * from './constants'; diff --git a/packages/bot/src/core/blitzstars/index.ts b/packages/bot/src/core/blitzstars/index.ts new file mode 100644 index 000000000..1af136eff --- /dev/null +++ b/packages/bot/src/core/blitzstars/index.ts @@ -0,0 +1 @@ +export * from './getStatsInPeriod'; diff --git a/src/core/streams/wotbreplay.ts b/packages/bot/src/core/streams/wotbreplay.ts similarity index 96% rename from src/core/streams/wotbreplay.ts rename to packages/bot/src/core/streams/wotbreplay.ts index 07a25ebbd..8cecebb5d 100644 --- a/src/core/streams/wotbreplay.ts +++ b/packages/bot/src/core/streams/wotbreplay.ts @@ -2,7 +2,7 @@ import AdmZip from 'adm-zip'; import { readFile, writeFile } from 'fs/promises'; import { Parser } from 'pickleparser'; import protobuf from 'protobufjs'; -import { ReadStream } from './buffer'; +import { ReadStream } from '../../../../core/src/streams/buffer'; interface WotbReplayMetaJson { version: string; diff --git a/packages/core/package.json b/packages/core/package.json index b6a60eca4..42cc72333 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -8,9 +8,13 @@ "lodash": "^4.17.21", "@prisma/client": "^5.19.1", "@octokit/plugin-throttling": "^8.2.0", - "lz4js": "^0.2.0" + "protobufjs": "^7.4.0", + "lz4js": "^0.2.0", + "pickleparser": "^0.2.1", + "adm-zip": "^0.5.16" }, "devDependencies": { + "@types/adm-zip": "^0.5.5", "@types/lodash": "^4.17.7", "@types/lz4js": "^0.2.1" } diff --git a/packages/website/public/protos/BattleResultsClient.proto b/packages/core/protos/BattleResultsClient.proto similarity index 100% rename from packages/website/public/protos/BattleResultsClient.proto rename to packages/core/protos/BattleResultsClient.proto diff --git a/packages/website/public/protos/PlayerAvatarImage.proto b/packages/core/protos/PlayerAvatarImage.proto similarity index 100% rename from packages/website/public/protos/PlayerAvatarImage.proto rename to packages/core/protos/PlayerAvatarImage.proto diff --git a/packages/website/public/protos/average_definitions.proto b/packages/core/protos/average_definitions.proto similarity index 100% rename from packages/website/public/protos/average_definitions.proto rename to packages/core/protos/average_definitions.proto diff --git a/packages/website/public/protos/reviews.proto b/packages/core/protos/reviews.proto similarity index 100% rename from packages/website/public/protos/reviews.proto rename to packages/core/protos/reviews.proto diff --git a/packages/core/src/blitz/constants.ts b/packages/core/src/blitz/constants.ts index bf4dcadb8..3132c6263 100644 --- a/packages/core/src/blitz/constants.ts +++ b/packages/core/src/blitz/constants.ts @@ -6,3 +6,23 @@ export const TANK_CLASSES = [ 'heavyTank', 'AT-SPG', ] as const; + +export const emptyAllStats: BlitzStats = { + battles: 0, + capture_points: 0, + damage_dealt: 0, + damage_received: 0, + dropped_capture_points: 0, + frags: 0, + frags8p: 0, + hits: 0, + losses: 0, + max_frags: 0, + max_xp: 0, + shots: 0, + spotted: 0, + survived_battles: 0, + xp: 0, + win_and_survived: 0, + wins: 0, +}; diff --git a/packages/core/src/blitz/index.ts b/packages/core/src/blitz/index.ts index 8943a0afa..a780a13d4 100644 --- a/packages/core/src/blitz/index.ts +++ b/packages/core/src/blitz/index.ts @@ -1,3 +1,4 @@ export * from './constants'; export * from './idToRegion'; +export * from './permanentSkills'; export * from './resolveNearPenetration'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Skills/constants.tsx b/packages/core/src/blitz/permanentSkills.tsx similarity index 100% rename from packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Skills/constants.tsx rename to packages/core/src/blitz/permanentSkills.tsx diff --git a/src/core/blitzkit/availableProvisions.ts b/packages/core/src/blitzkit/availableProvisions.ts similarity index 82% rename from src/core/blitzkit/availableProvisions.ts rename to packages/core/src/blitzkit/availableProvisions.ts index 143ad7158..edd2c0ba6 100644 --- a/src/core/blitzkit/availableProvisions.ts +++ b/packages/core/src/blitzkit/availableProvisions.ts @@ -1,5 +1,5 @@ +import { ProvisionDefinitions } from '@blitzkit/core/src/blitzkit/provisionDefinitions'; import { checkConsumableProvisionInclusivity } from './checkConsumableProvisionInclusivity'; -import { ProvisionDefinitions } from './provisionDefinitions'; import { GunDefinition, TankDefinition } from './tankDefinitions'; export function availableProvisions( diff --git a/src/core/blitzkit/averageDefinitions/constants.ts b/packages/core/src/blitzkit/averageDefinitions/constants.ts similarity index 71% rename from src/core/blitzkit/averageDefinitions/constants.ts rename to packages/core/src/blitzkit/averageDefinitions/constants.ts index b25afdf7c..36816d061 100644 --- a/src/core/blitzkit/averageDefinitions/constants.ts +++ b/packages/core/src/blitzkit/averageDefinitions/constants.ts @@ -1,6 +1,5 @@ import { Samples } from '.'; -import { emptyAllStats } from '../../blitzstars/getStatsInPeriod/constants'; -import { BlitzkitStats } from '../../statistics/compositeStats/constants'; +import { emptyAllStats } from '../../blitz/constants'; export const emptyAverageDefinitionsAllStats: BlitzkitStats = { ...emptyAllStats, diff --git a/src/core/blitzkit/averageDefinitions/index.ts b/packages/core/src/blitzkit/averageDefinitions/index.ts similarity index 84% rename from src/core/blitzkit/averageDefinitions/index.ts rename to packages/core/src/blitzkit/averageDefinitions/index.ts index d448e4ce6..9d65527ed 100644 --- a/src/core/blitzkit/averageDefinitions/index.ts +++ b/packages/core/src/blitzkit/averageDefinitions/index.ts @@ -1,5 +1,5 @@ -import { decode } from '../../protobuf/decode'; -import { BlitzkitStats } from '../../statistics/compositeStats/constants'; +import { BlitzkitStats } from '../../../../../src/core/statistics/compositeStats/constants'; +import { decodeProtobuf } from '../../protobuf/decodeProtobuf'; import { asset } from '../asset'; export interface AverageDefinitionsEntry { @@ -51,7 +51,7 @@ export const averageDefinitions = fetch(asset('averages/manifest.json'), { .then((manifest) => fetch(asset(`averages/${manifest.latest}.pb`))) .then((response) => response.arrayBuffer()) .then((buffer) => - decode( + decodeProtobuf( 'average_definitions', 'blitzkit.AverageDefinitions', new Uint8Array(buffer), @@ -65,7 +65,9 @@ export const averageDefinitionsArray = averageDefinitions.then((data) => ({ id: Number(key), ...(value as AverageDefinitionsEntry), - }) satisfies AverageDefinitionsEntryWithId, + } satisfies AverageDefinitionsEntryWithId), ) .filter((tank) => tank.mu.battles > 0), ); + +export * from './constants'; diff --git a/src/core/blitzkit/checkConsumableProvisionInclusivity.ts b/packages/core/src/blitzkit/checkConsumableProvisionInclusivity.ts similarity index 89% rename from src/core/blitzkit/checkConsumableProvisionInclusivity.ts rename to packages/core/src/blitzkit/checkConsumableProvisionInclusivity.ts index 1f72f81f7..0e0bf217b 100644 --- a/src/core/blitzkit/checkConsumableProvisionInclusivity.ts +++ b/packages/core/src/blitzkit/checkConsumableProvisionInclusivity.ts @@ -1,5 +1,5 @@ -import { ConsumableEntry } from './consumableDefinitions'; -import { ProvisionEntry } from './provisionDefinitions'; +import { ConsumableEntry } from '@blitzkit/core/src/blitzkit/consumableDefinitions'; +import { ProvisionEntry } from '@blitzkit/core/src/blitzkit/provisionDefinitions'; import { GunDefinition, TankDefinition } from './tankDefinitions'; export function checkConsumableProvisionInclusivity( diff --git a/src/core/blitzkit/coefficient.ts b/packages/core/src/blitzkit/coefficient.ts similarity index 100% rename from src/core/blitzkit/coefficient.ts rename to packages/core/src/blitzkit/coefficient.ts diff --git a/src/core/blitzkit/consumableDefinitions.ts b/packages/core/src/blitzkit/consumableDefinitions.ts similarity index 100% rename from src/core/blitzkit/consumableDefinitions.ts rename to packages/core/src/blitzkit/consumableDefinitions.ts diff --git a/src/core/blitzkit/createDefaultSkills.ts b/packages/core/src/blitzkit/createDefaultSkills.ts similarity index 64% rename from src/core/blitzkit/createDefaultSkills.ts rename to packages/core/src/blitzkit/createDefaultSkills.ts index 8b97e671a..359b3af13 100644 --- a/src/core/blitzkit/createDefaultSkills.ts +++ b/packages/core/src/blitzkit/createDefaultSkills.ts @@ -1,5 +1,5 @@ -import { permanentSkills } from '../../app/tools/tankopedia/[id]/components/Characteristics/components/Skills/constants'; -import { SkillDefinitions } from './skillDefinitions'; +import { SkillDefinitions } from '@blitzkit/core/src/blitzkit/skillDefinitions'; +import { permanentSkills } from '../blitz/permanentSkills'; export function createDefaultSkills(skillDefinitions: SkillDefinitions) { const skills: Record = {}; diff --git a/src/core/blitzkit/equipmentDefinitions.ts b/packages/core/src/blitzkit/equipmentDefinitions.ts similarity index 100% rename from src/core/blitzkit/equipmentDefinitions.ts rename to packages/core/src/blitzkit/equipmentDefinitions.ts diff --git a/src/core/blitzkit/eventManager.ts b/packages/core/src/blitzkit/eventManager.ts similarity index 100% rename from src/core/blitzkit/eventManager.ts rename to packages/core/src/blitzkit/eventManager.ts diff --git a/packages/core/src/blitzkit/index.ts b/packages/core/src/blitzkit/index.ts index f312f33a8..8497b3a23 100644 --- a/packages/core/src/blitzkit/index.ts +++ b/packages/core/src/blitzkit/index.ts @@ -1,12 +1,30 @@ export * from './assertSecret'; export * from './asset'; +export * from './availableProvisions'; +export * from './averageDefinitions'; export * from './camouflageDefinitions'; +export * from './checkConsumableProvisionInclusivity'; +export * from './coefficient'; +export * from './consumableDefinitions'; +export * from './createDefaultSkills'; +export * from './equipmentDefinitions'; +export * from './eventManager'; export * from './fetchCdonLz4'; export * from './filterTank'; export * from './gameDefinitions'; +export * from './isExplosive'; export * from './modelDefinitions'; +export * from './pose'; +export * from './provisionDefinitions'; +export * from './resolvePenetrationCoefficient'; +export * from './reviews'; +export * from './skillDefinitions'; +export * from './sum'; export * from './superCompress'; export * from './superDecompress'; +export * from './tankCharacteristics'; export * from './tankDefinitions'; export * from './tankIcon'; export * from './tankNames'; +export * from './uniqueGuns'; +export * from './youtubers'; diff --git a/src/core/blitz/isExplosive.ts b/packages/core/src/blitzkit/isExplosive.ts similarity index 69% rename from src/core/blitz/isExplosive.ts rename to packages/core/src/blitzkit/isExplosive.ts index 08847774f..d487d17b8 100644 --- a/src/core/blitz/isExplosive.ts +++ b/packages/core/src/blitzkit/isExplosive.ts @@ -1,4 +1,4 @@ -import { ShellDefinition, ShellType } from '../blitzkit/tankDefinitions'; +import { ShellDefinition, ShellType } from '@blitzkit/core'; export function isExplosive( type: ShellDefinition['type'], diff --git a/src/core/blitzkit/pose.ts b/packages/core/src/blitzkit/pose.ts similarity index 100% rename from src/core/blitzkit/pose.ts rename to packages/core/src/blitzkit/pose.ts diff --git a/src/core/blitzkit/provisionDefinitions.ts b/packages/core/src/blitzkit/provisionDefinitions.ts similarity index 85% rename from src/core/blitzkit/provisionDefinitions.ts rename to packages/core/src/blitzkit/provisionDefinitions.ts index 6d8451427..4c101e332 100644 --- a/src/core/blitzkit/provisionDefinitions.ts +++ b/packages/core/src/blitzkit/provisionDefinitions.ts @@ -1,5 +1,5 @@ +import { TankFilterDefinition } from '@blitzkit/core/src/blitzkit/consumableDefinitions'; import { asset } from './asset'; -import { TankFilterDefinition } from './consumableDefinitions'; import { fetchCdonLz4 } from './fetchCdonLz4'; export type ProvisionEntry = { diff --git a/src/core/blitz/resolvePenetrationCoefficient.ts b/packages/core/src/blitzkit/resolvePenetrationCoefficient.ts similarity index 100% rename from src/core/blitz/resolvePenetrationCoefficient.ts rename to packages/core/src/blitzkit/resolvePenetrationCoefficient.ts diff --git a/src/core/blitzkit/reviews.ts b/packages/core/src/blitzkit/reviews.ts similarity index 71% rename from src/core/blitzkit/reviews.ts rename to packages/core/src/blitzkit/reviews.ts index 2dd9f041f..1fd7331cc 100644 --- a/src/core/blitzkit/reviews.ts +++ b/packages/core/src/blitzkit/reviews.ts @@ -1,5 +1,5 @@ -import { decode } from '../protobuf/decode'; import { asset } from '@blitzkit/core/src/blitzkit/asset'; +import { decodeProtobuf } from '../protobuf'; export interface Reviews { reviews: Record; @@ -18,5 +18,9 @@ export interface Video { export const reviews = fetch(asset('definitions/reviews.pb')) .then((response) => response.arrayBuffer()) .then((buffer) => - decode('reviews', 'blitzkit.Reviews', new Uint8Array(buffer)), + decodeProtobuf( + 'reviews', + 'blitzkit.Reviews', + new Uint8Array(buffer), + ), ); diff --git a/src/core/blitzkit/skillDefinitions.ts b/packages/core/src/blitzkit/skillDefinitions.ts similarity index 83% rename from src/core/blitzkit/skillDefinitions.ts rename to packages/core/src/blitzkit/skillDefinitions.ts index f2d6c88ec..89fe65c69 100644 --- a/src/core/blitzkit/skillDefinitions.ts +++ b/packages/core/src/blitzkit/skillDefinitions.ts @@ -1,6 +1,6 @@ -import { TankClass } from '../../components/Tanks'; import { asset } from '@blitzkit/core/src/blitzkit/asset'; import { fetchCdonLz4 } from '@blitzkit/core/src/blitzkit/fetchCdonLz4'; +import { TankClass } from '../../../../src/components/Tanks'; export interface SkillDefinitions { classes: Record; diff --git a/src/core/blitzkit/sum.ts b/packages/core/src/blitzkit/sum.ts similarity index 100% rename from src/core/blitzkit/sum.ts rename to packages/core/src/blitzkit/sum.ts diff --git a/packages/core/src/blitzkit/superCompress.ts b/packages/core/src/blitzkit/superCompress.ts index 45005a8c0..a3524a18c 100644 --- a/packages/core/src/blitzkit/superCompress.ts +++ b/packages/core/src/blitzkit/superCompress.ts @@ -1,5 +1,5 @@ import { compress } from 'lz4js'; -import { CdonWriteStream } from '../../../../src/core/streams/cdon'; +import { CdonWriteStream } from '../streams'; export function superCompress(object: any) { const write = new CdonWriteStream().cdon(object); diff --git a/packages/core/src/blitzkit/superDecompress.ts b/packages/core/src/blitzkit/superDecompress.ts index 48b5722c9..595d75ae0 100644 --- a/packages/core/src/blitzkit/superDecompress.ts +++ b/packages/core/src/blitzkit/superDecompress.ts @@ -1,5 +1,5 @@ import { decompress } from 'lz4js'; -import { CdonReadStream } from '../../../../src/core/streams/cdon'; +import { CdonReadStream } from '../streams'; export function superDecompress(buffer: ArrayBuffer) { const decompressed = decompress(new Uint8Array(buffer)).buffer as ArrayBuffer; diff --git a/src/core/blitzkit/tankCharacteristics.ts b/packages/core/src/blitzkit/tankCharacteristics.ts similarity index 96% rename from src/core/blitzkit/tankCharacteristics.ts rename to packages/core/src/blitzkit/tankCharacteristics.ts index 03c69f1d9..7b3a5b945 100644 --- a/src/core/blitzkit/tankCharacteristics.ts +++ b/packages/core/src/blitzkit/tankCharacteristics.ts @@ -1,15 +1,11 @@ +import { EquipmentDefinitions } from '@blitzkit/core/src/blitzkit/equipmentDefinitions'; import { ModelDefinition } from '@blitzkit/core/src/blitzkit/modelDefinitions'; -import { resolveNearPenetration } from '@blitzkit/core/src/blitzkit/resolveNearPenetration'; -import { EquipmentMatrix } from '../../../packages/website/src/stores/duel'; -import { isExplosive } from '../blitz/isExplosive'; -import { resolvePenetrationCoefficient } from '../blitz/resolvePenetrationCoefficient'; +import { ProvisionDefinitions } from '@blitzkit/core/src/blitzkit/provisionDefinitions'; +import { EquipmentMatrix } from '../../../website/src/stores/duel'; +import { resolveNearPenetration } from '../blitz/resolveNearPenetration'; import { coefficient } from './coefficient'; -import { degressiveStat } from './degressiveStat'; -import { EquipmentDefinitions } from './equipmentDefinitions'; -import { normalizeBoundingBox } from './normalizeBoundingBox'; -import { progressiveStat } from './progressiveStat'; -import { ProvisionDefinitions } from './provisionDefinitions'; -import { resolveDpm } from './resolveDpm'; +import { isExplosive } from './isExplosive'; +import { resolvePenetrationCoefficient } from './resolvePenetrationCoefficient'; import { sum } from './sum'; import { EngineDefinition, @@ -19,7 +15,6 @@ import { TrackDefinition, TurretDefinition, } from './tankDefinitions'; -import { unionBoundingBox } from './unionBoundingBox'; export type TankCharacteristics = ReturnType; diff --git a/src/core/blitzkit/uniqueGuns.ts b/packages/core/src/blitzkit/uniqueGuns.ts similarity index 100% rename from src/core/blitzkit/uniqueGuns.ts rename to packages/core/src/blitzkit/uniqueGuns.ts diff --git a/src/constants/youtubers.ts b/packages/core/src/blitzkit/youtubers.ts similarity index 100% rename from src/constants/youtubers.ts rename to packages/core/src/blitzkit/youtubers.ts diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 47ff4a02a..8ddad0299 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,5 +1,10 @@ export * from './blitz'; export * from './blitzkit'; export * from './imgur'; +export * from './math'; export * from './patreon'; +export * from './protobuf'; +export * from './radix'; +export * from './statistics'; +export * from './streams'; export * from './zustand'; diff --git a/src/core/math/NaNFallback.ts b/packages/core/src/math/NaNFallback.ts similarity index 100% rename from src/core/math/NaNFallback.ts rename to packages/core/src/math/NaNFallback.ts diff --git a/src/constants/axis.ts b/packages/core/src/math/axis.ts similarity index 100% rename from src/constants/axis.ts rename to packages/core/src/math/axis.ts diff --git a/src/core/math/formatCompact.ts b/packages/core/src/math/formatCompact.ts similarity index 100% rename from src/core/math/formatCompact.ts rename to packages/core/src/math/formatCompact.ts diff --git a/packages/core/src/math/index.ts b/packages/core/src/math/index.ts new file mode 100644 index 000000000..bb4a1859b --- /dev/null +++ b/packages/core/src/math/index.ts @@ -0,0 +1,7 @@ +export * from './axis'; +export * from './formatCompact'; +export * from './isNumber'; +export * from './NaNFallback'; +export * from './normalizeAngleRad'; +export * from './normalToEuler'; +export * from './numberToRomanNumeral'; diff --git a/src/core/math/isNumber.ts b/packages/core/src/math/isNumber.ts similarity index 100% rename from src/core/math/isNumber.ts rename to packages/core/src/math/isNumber.ts diff --git a/src/core/math/normalToEuler.ts b/packages/core/src/math/normalToEuler.ts similarity index 88% rename from src/core/math/normalToEuler.ts rename to packages/core/src/math/normalToEuler.ts index b3b005e96..f89d2970c 100644 --- a/src/core/math/normalToEuler.ts +++ b/packages/core/src/math/normalToEuler.ts @@ -1,5 +1,5 @@ import { Euler, Quaternion, Vector3 } from 'three'; -import { J_HAT } from '../../constants/axis'; +import { J_HAT } from './axis'; const quaternion = new Quaternion(); const axis = new Vector3(); diff --git a/src/core/math/normalizeAngleRad.ts b/packages/core/src/math/normalizeAngleRad.ts similarity index 100% rename from src/core/math/normalizeAngleRad.ts rename to packages/core/src/math/normalizeAngleRad.ts diff --git a/src/core/math/numberToRomanNumeral.ts b/packages/core/src/math/numberToRomanNumeral.ts similarity index 100% rename from src/core/math/numberToRomanNumeral.ts rename to packages/core/src/math/numberToRomanNumeral.ts diff --git a/packages/core/src/protobuf/decodeProtobuf.ts b/packages/core/src/protobuf/decodeProtobuf.ts new file mode 100644 index 000000000..b811f48ca --- /dev/null +++ b/packages/core/src/protobuf/decodeProtobuf.ts @@ -0,0 +1,9 @@ +import { lookupProtobufType, ProtoSource } from './lookupProtobufType'; + +export function decodeProtobuf( + source: ProtoSource, + type: string, + data: Uint8Array, +) { + return lookupProtobufType(source, type).decode(data).toJSON() as Type; +} diff --git a/src/core/protobuf/encode.ts b/packages/core/src/protobuf/encodeProtobuf.ts similarity index 60% rename from src/core/protobuf/encode.ts rename to packages/core/src/protobuf/encodeProtobuf.ts index 877d1e125..66893b3d7 100644 --- a/src/core/protobuf/encode.ts +++ b/packages/core/src/protobuf/encodeProtobuf.ts @@ -1,11 +1,11 @@ -import { lookup, ProtoSource } from './lookup'; +import { lookupProtobufType, ProtoSource } from './lookupProtobufType'; -export function encode( +export function encodeProtobuf( source: ProtoSource, type: string, data: Record, ) { - const message = lookup(source, type); + const message = lookupProtobufType(source, type); const verification = message.verify(data); if (verification !== null) throw new Error(verification); diff --git a/packages/core/src/protobuf/encodeProtobufToBase64.ts b/packages/core/src/protobuf/encodeProtobufToBase64.ts new file mode 100644 index 000000000..2402a3934 --- /dev/null +++ b/packages/core/src/protobuf/encodeProtobufToBase64.ts @@ -0,0 +1,11 @@ +import { encodeProtobuf } from './encodeProtobuf'; +import { ProtoSource } from './lookupProtobufType'; + +export async function encodeProtobufToBase64( + source: ProtoSource, + type: string, + data: any, +) { + const array = encodeProtobuf(source, type, data); + return Buffer.from(array).toString('base64'); +} diff --git a/packages/core/src/protobuf/index.ts b/packages/core/src/protobuf/index.ts new file mode 100644 index 000000000..94ecff4d2 --- /dev/null +++ b/packages/core/src/protobuf/index.ts @@ -0,0 +1,4 @@ +export * from './decodeProtobuf'; +export * from './encodeProtobuf'; +export * from './encodeProtobufToBase64'; +export * from './lookupProtobufType'; diff --git a/packages/core/src/protobuf/lookupProtobufType.ts b/packages/core/src/protobuf/lookupProtobufType.ts new file mode 100644 index 000000000..79264852a --- /dev/null +++ b/packages/core/src/protobuf/lookupProtobufType.ts @@ -0,0 +1,11 @@ +import { parse } from 'protobufjs'; +import average_definitions from '../../protos/average_definitions.proto'; +import reviews from '../../protos/reviews.proto'; + +export type ProtoSource = keyof typeof protos; + +const protos = { reviews, average_definitions }; + +export function lookupProtobufType(source: ProtoSource, type: string) { + return parse(protos[source]).root.lookupType(type); +} diff --git a/packages/core/src/radix/index.ts b/packages/core/src/radix/index.ts new file mode 100644 index 000000000..140c957db --- /dev/null +++ b/packages/core/src/radix/index.ts @@ -0,0 +1 @@ +export * from './var'; diff --git a/src/core/blitzkit/var.ts b/packages/core/src/radix/var.ts similarity index 100% rename from src/core/blitzkit/var.ts rename to packages/core/src/radix/var.ts diff --git a/src/core/statistics/calculateWN8.ts b/packages/core/src/statistics/calculateWN8.ts similarity index 100% rename from src/core/statistics/calculateWN8.ts rename to packages/core/src/statistics/calculateWN8.ts diff --git a/src/core/statistics/compositeStats/constants.ts b/packages/core/src/statistics/compositeStats/constants.ts similarity index 100% rename from src/core/statistics/compositeStats/constants.ts rename to packages/core/src/statistics/compositeStats/constants.ts diff --git a/src/core/statistics/compositeStats/index.ts b/packages/core/src/statistics/compositeStats/index.ts similarity index 93% rename from src/core/statistics/compositeStats/index.ts rename to packages/core/src/statistics/compositeStats/index.ts index 58f7d0d5e..acb13f8fb 100644 --- a/src/core/statistics/compositeStats/index.ts +++ b/packages/core/src/statistics/compositeStats/index.ts @@ -52,10 +52,16 @@ export function compositeStats(stats: BlitzkitStats, average: BlitzkitStats) { export function formatCompositeStat(value: number, key: CompositeStatsKey) { const formatting = compositeStatsFormatting[key]; const resolvedValue = (formatting.coefficient ?? 1) * value; - return `${formatting.localeFormat ? resolvedValue.toLocaleString() : resolvedValue.toFixed(formatting.fixed)}${formatting.unit ?? ''}`; + return `${ + formatting.localeFormat + ? resolvedValue.toLocaleString() + : resolvedValue.toFixed(formatting.fixed) + }${formatting.unit ?? ''}`; } export function previewCompositeStat(key: CompositeStatsKey) { const { preview } = compositeStatsFormatting[key]; return formatCompositeStat(preview, key); } + +export * from './constants'; diff --git a/src/core/statistics/deltaBkrlBlitzStats.ts b/packages/core/src/statistics/deltaBkrlBlitzStats.ts similarity index 100% rename from src/core/statistics/deltaBkrlBlitzStats.ts rename to packages/core/src/statistics/deltaBkrlBlitzStats.ts diff --git a/src/core/statistics/deltaTankStats.ts b/packages/core/src/statistics/deltaTankStats.ts similarity index 94% rename from src/core/statistics/deltaTankStats.ts rename to packages/core/src/statistics/deltaTankStats.ts index efb5b6aa9..30bd8d3a6 100644 --- a/src/core/statistics/deltaTankStats.ts +++ b/packages/core/src/statistics/deltaTankStats.ts @@ -1,8 +1,3 @@ -import { - emptyIndividualTankStats, - IndividualTankStats, -} from '../../types/tanksStats'; - export function deltaTankStats( tanksA: IndividualTankStats[], tanksB: IndividualTankStats[], diff --git a/src/core/statistics/filterStats.ts b/packages/core/src/statistics/filterStats.ts similarity index 91% rename from src/core/statistics/filterStats.ts rename to packages/core/src/statistics/filterStats.ts index 604254928..f5f73a1c1 100644 --- a/src/core/statistics/filterStats.ts +++ b/packages/core/src/statistics/filterStats.ts @@ -1,8 +1,4 @@ -import { TreeType } from '../../components/Tanks'; -import { SupplementaryStats } from '../blitz/getAccountInfo'; import { tankDefinitions } from '../blitzkit/tankDefinitions'; -import { DiffedTankStats } from '../blitzstars/getStatsInPeriod'; -import { tankAverages } from '../blitzstars/tankAverages'; import calculateWN8 from './calculateWN8'; import sumStats from './sumStats'; diff --git a/src/core/statistics/getBkniPercentile.ts b/packages/core/src/statistics/getBkniPercentile.ts similarity index 100% rename from src/core/statistics/getBkniPercentile.ts rename to packages/core/src/statistics/getBkniPercentile.ts diff --git a/src/core/statistics/getTierWeights.ts b/packages/core/src/statistics/getTierWeights.ts similarity index 100% rename from src/core/statistics/getTierWeights.ts rename to packages/core/src/statistics/getTierWeights.ts diff --git a/src/core/statistics/getWN8Percentile.ts b/packages/core/src/statistics/getWN8Percentile.ts similarity index 90% rename from src/core/statistics/getWN8Percentile.ts rename to packages/core/src/statistics/getWN8Percentile.ts index d73538d33..1fbfa91fc 100644 --- a/src/core/statistics/getWN8Percentile.ts +++ b/packages/core/src/statistics/getWN8Percentile.ts @@ -1,4 +1,4 @@ -import { Percentile } from '../../constants/percentiles'; +import { Percentile } from './percentiles'; const WN8_PERCENTILES: [number, Percentile][] = [ [0, Percentile.VeryBad], diff --git a/packages/core/src/statistics/index.ts b/packages/core/src/statistics/index.ts new file mode 100644 index 000000000..8a80f7e59 --- /dev/null +++ b/packages/core/src/statistics/index.ts @@ -0,0 +1,10 @@ +export * from './calculateWN8'; +export * from './compositeStats'; +export * from './deltaBkrlBlitzStats'; +export * from './deltaTankStats'; +export * from './filterStats'; +export * from './getBkniPercentile'; +export * from './getTierWeights'; +export * from './getWN8Percentile'; +export * from './percentiles'; +export * from './sumStats'; diff --git a/src/constants/percentiles.ts b/packages/core/src/statistics/percentiles.ts similarity index 100% rename from src/constants/percentiles.ts rename to packages/core/src/statistics/percentiles.ts diff --git a/src/core/statistics/sumStats.ts b/packages/core/src/statistics/sumStats.ts similarity index 94% rename from src/core/statistics/sumStats.ts rename to packages/core/src/statistics/sumStats.ts index baab5aff9..f95278794 100644 --- a/src/core/statistics/sumStats.ts +++ b/packages/core/src/statistics/sumStats.ts @@ -1,4 +1,3 @@ -import { emptyAllStats } from '../blitzstars/getStatsInPeriod/constants'; import { BlitzStats } from './compositeStats/constants'; export default function sumStats(allStatsCollection: BlitzStats[]) { diff --git a/src/core/streams/bkrl.ts b/packages/core/src/streams/bkrl.ts similarity index 100% rename from src/core/streams/bkrl.ts rename to packages/core/src/streams/bkrl.ts diff --git a/src/core/streams/buffer.ts b/packages/core/src/streams/buffer.ts similarity index 100% rename from src/core/streams/buffer.ts rename to packages/core/src/streams/buffer.ts diff --git a/src/core/streams/cdon.ts b/packages/core/src/streams/cdon.ts similarity index 100% rename from src/core/streams/cdon.ts rename to packages/core/src/streams/cdon.ts diff --git a/src/core/streams/dds.ts b/packages/core/src/streams/dds.ts similarity index 100% rename from src/core/streams/dds.ts rename to packages/core/src/streams/dds.ts diff --git a/src/core/streams/dids.ts b/packages/core/src/streams/dids.ts similarity index 100% rename from src/core/streams/dids.ts rename to packages/core/src/streams/dids.ts diff --git a/packages/core/src/streams/index.ts b/packages/core/src/streams/index.ts new file mode 100644 index 000000000..a16292c7c --- /dev/null +++ b/packages/core/src/streams/index.ts @@ -0,0 +1,11 @@ +export * from './bkrl'; +export * from './buffer'; +export * from './cdon'; +export * from './dds'; +export * from './dids'; +export * from './pvr'; +export * from './rts'; +export * from './sc2'; +export * from './scg'; +export * from './scpg'; +export * from './windows'; diff --git a/src/core/streams/pvr.ts b/packages/core/src/streams/pvr.ts similarity index 100% rename from src/core/streams/pvr.ts rename to packages/core/src/streams/pvr.ts diff --git a/src/core/streams/rts.ts b/packages/core/src/streams/rts.ts similarity index 100% rename from src/core/streams/rts.ts rename to packages/core/src/streams/rts.ts diff --git a/src/core/streams/sc2.ts b/packages/core/src/streams/sc2.ts similarity index 100% rename from src/core/streams/sc2.ts rename to packages/core/src/streams/sc2.ts diff --git a/src/core/streams/scg.ts b/packages/core/src/streams/scg.ts similarity index 100% rename from src/core/streams/scg.ts rename to packages/core/src/streams/scg.ts diff --git a/src/core/streams/scpg.ts b/packages/core/src/streams/scpg.ts similarity index 100% rename from src/core/streams/scpg.ts rename to packages/core/src/streams/scpg.ts diff --git a/src/core/streams/windows.ts b/packages/core/src/streams/windows.ts similarity index 100% rename from src/core/streams/windows.ts rename to packages/core/src/streams/windows.ts diff --git a/packages/core/src/zustand/createNextSafeStore.tsx b/packages/core/src/zustand/createNextSafeStore.tsx index fed7d3a5e..0e0337487 100644 --- a/packages/core/src/zustand/createNextSafeStore.tsx +++ b/packages/core/src/zustand/createNextSafeStore.tsx @@ -1,3 +1,6 @@ +// MIGRATION TODO: i added this use client, it makes stuff work again? +'use client'; + import { Draft, produce } from 'immer'; import { createContext, diff --git a/packages/website/src/app/tools/compare/components/CompareTable.tsx b/packages/website/src/app/tools/compare/components/CompareTable.tsx index 155f76003..8b9aa6401 100644 --- a/packages/website/src/app/tools/compare/components/CompareTable.tsx +++ b/packages/website/src/app/tools/compare/components/CompareTable.tsx @@ -1,3 +1,4 @@ +import { permanentSkills } from '@blitzkit/core/src/blitz/permanentSkills'; import { ComponentPlaceholderIcon } from '@radix-ui/react-icons'; import { Button, Flex, Popover, Slider, Table, Text } from '@radix-ui/themes'; import { debounce, times } from 'lodash'; @@ -21,7 +22,6 @@ import { BlitzkitButtonGray } from '../../../../icons/BlitzkitButtonGray'; import { theme } from '../../../../stitches.config'; import * as CompareEphemeral from '../../../../stores/compareEphemeral'; import { EquipmentMatrix } from '../../../../stores/duel'; -import { permanentSkills } from '../../tankopedia/[id]/components/Characteristics/components/Skills/constants'; import { Body } from './Body'; import { InsertionMarker } from './IntersectionMarker'; import { TankCard } from './TankCard'; @@ -101,8 +101,8 @@ export function CompareTable({ stats }: CompareTableProps) { crewSkills[skill] === 0 ? theme.colors.textLowContrast : permanentSkills.includes(skill) - ? theme.colors.textLowContrast_crimson - : theme.colors.textLowContrast_amber, + ? theme.colors.textLowContrast_crimson + : theme.colors.textLowContrast_amber, }} /> ))} diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Consumables.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Consumables.tsx index 52e63878c..11f4ebebc 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Consumables.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Consumables.tsx @@ -1,3 +1,7 @@ +import { + checkConsumableProvisionInclusivity, + consumableDefinitions, +} from '@blitzkit/core'; import { InfoCircledIcon } from '@radix-ui/react-icons'; import { Button, @@ -9,8 +13,6 @@ import { } from '@radix-ui/themes'; import { use } from 'react'; import { ConsumablesManager } from '../../../../../../../components/ConsumablesManager'; -import { checkConsumableProvisionInclusivity } from '../../../../../../../core/blitzkit/checkConsumableProvisionInclusivity'; -import { consumableDefinitions } from '../../../../../../../core/blitzkit/consumableDefinitions'; import { useEquipment } from '../../../../../../../hooks/useEquipment'; import * as Duel from '../../../../../../../stores/duel'; import { ConfigurationChildWrapper } from './ConfigurationChildWrapper'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Equipment.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Equipment.tsx index 410214b55..8caca6b49 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Equipment.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Equipment.tsx @@ -1,7 +1,7 @@ +import { equipmentDefinitions } from '@blitzkit/core'; import { Button, Flex, Heading } from '@radix-ui/themes'; import { use } from 'react'; import { EquipmentManager } from '../../../../../../../components/EquipmentManager'; -import { equipmentDefinitions } from '../../../../../../../core/blitzkit/equipmentDefinitions'; import * as Duel from '../../../../../../../stores/duel'; import { ConfigurationChildWrapper } from './ConfigurationChildWrapper'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Info.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Info.tsx index b07b0ae84..82a1c767a 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Info.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Info.tsx @@ -1,14 +1,12 @@ import { CaretDownIcon, CaretUpIcon } from '@radix-ui/react-icons'; import { Flex, Text } from '@radix-ui/themes'; import { ReactNode } from 'react'; -import { theme } from '../../../../../../../stitches.config'; export interface InfoProps { name: ReactNode; children?: ReactNode; unit?: string; indent?: boolean; - highlight?: boolean; delta?: number; decimals?: number; prefix?: string; @@ -20,7 +18,6 @@ export function Info({ children, unit, indent = false, - highlight, delta, decimals, prefix, @@ -32,7 +29,7 @@ export function Info({ style={{ width: '100%', paddingLeft: indent ? 24 : 0 }} gap="4" > - + {name} {unit != undefined && ( <> @@ -49,9 +46,7 @@ export function Info({ style={{ flex: 1, height: 1, - backgroundColor: highlight - ? theme.colors.componentCallToActionInteractive_amberAlpha - : theme.colors.componentCallToActionInteractive_alpha, + backgroundColor: 'red', }} /> )} @@ -82,7 +77,7 @@ export function Info({ )} - + {prefix} {decimals !== undefined && typeof children === 'number' ? children.toFixed(decimals) diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Miscellaneous.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Miscellaneous.tsx index 2713ba63d..661bc62c9 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Miscellaneous.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Miscellaneous.tsx @@ -1,8 +1,8 @@ +import { asset } from '@blitzkit/core'; import { Flex, Heading, Slider, TextField } from '@radix-ui/themes'; import { clamp, debounce } from 'lodash'; import { useEffect, useMemo, useRef, useState } from 'react'; import { GenericTankComponentButton } from '../../../../../../../components/ModuleButtons/GenericTankComponentButton'; -import { asset } from '../../../../../../../core/blitzkit/asset'; import * as Duel from '../../../../../../../stores/duel'; import { ConfigurationChildWrapper } from './ConfigurationChildWrapper'; @@ -61,10 +61,10 @@ export function Miscellaneous() { cooldownBooster === 0 ? undefined : cooldownBooster === 1 - ? '#afb0abc0' - : cooldownBooster === 2 - ? '#5f72cbc0' - : '#9b3cc0c0' + ? '#afb0abc0' + : cooldownBooster === 2 + ? '#5f72cbc0' + : '#9b3cc0c0' } iconStyles={{ transform: 'translate(-50%, -50%) scale(0.8)', diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Modules.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Modules.tsx index 3d566aa11..ce47d9c24 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Modules.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Modules.tsx @@ -1,3 +1,10 @@ +import { + asset, + formatCompact, + tankDefinitions, + tankIcon, + TIER_ROMAN_NUMERALS, +} from '@blitzkit/core'; import { Button, ChevronDownIcon, @@ -8,18 +15,6 @@ import { Text, } from '@radix-ui/themes'; import { use } from 'react'; -import { asset } from '../../../../../../../core/blitzkit/asset'; -import { - ModuleDefinition, - ModuleType, - TankDefinition, - tankDefinitions, - Tier, - Unlock, -} from '../../../../../../../core/blitzkit/tankDefinitions'; -import { TIER_ROMAN_NUMERALS } from '../../../../../../../core/blitzkit/tankDefinitions/constants'; -import { tankIcon } from '../../../../../../../core/blitzkit/tankIcon'; -import { formatCompact } from '../../../../../../../core/math/formatCompact'; import * as Duel from '../../../../../../../stores/duel'; import { ConfigurationChildWrapper } from './ConfigurationChildWrapper'; @@ -222,7 +217,9 @@ export function Modules() {
setByUnlock(unlock)} /> diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Provisions.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Provisions.tsx index 60c8a4d5e..1a1432b1a 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Provisions.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Provisions.tsx @@ -1,8 +1,7 @@ +import { availableProvisions, provisionDefinitions } from '@blitzkit/core'; import { Button, Flex, Heading } from '@radix-ui/themes'; import { use } from 'react'; import { ProvisionsManager } from '../../../../../../../components/ProvisionsManager'; -import { availableProvisions } from '../../../../../../../core/blitzkit/availableProvisions'; -import { provisionDefinitions } from '../../../../../../../core/blitzkit/provisionDefinitions'; import * as Duel from '../../../../../../../stores/duel'; import { ConfigurationChildWrapper } from './ConfigurationChildWrapper'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Skills/index.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Skills/index.tsx index 221ae76e9..509328d28 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Skills/index.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Skills/index.tsx @@ -1,3 +1,4 @@ +import { createDefaultSkills, skillDefinitions } from '@blitzkit/core'; import { InfoCircledIcon } from '@radix-ui/react-icons'; import { Button, @@ -10,8 +11,6 @@ import { } from '@radix-ui/themes'; import { use } from 'react'; import { CrewSkillManager } from '../../../../../../../../components/CrewSkillManager'; -import { createDefaultSkills } from '../../../../../../../../core/blitzkit/createDefaultSkills'; -import { skillDefinitions } from '../../../../../../../../core/blitzkit/skillDefinitions'; import * as TankopediaEphemeral from '../../../../../../../../stores/tankopediaEphemeral'; import { ConfigurationChildWrapper } from '../ConfigurationChildWrapper'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx index ea4f440bb..728734372 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx @@ -1,3 +1,14 @@ +import { + asset, + coefficient, + CREW_MEMBER_NAMES, + equipmentDefinitions, + GUN_TYPE_NAMES, + isExplosive, + provisionDefinitions, + resolvePenetrationCoefficient, + tankCharacteristics, +} from '@blitzkit/core'; import { AccessibilityIcon, InfoCircledIcon } from '@radix-ui/react-icons'; import { Flex, @@ -13,18 +24,6 @@ import { debounce } from 'lodash'; import { Fragment, use, useEffect, useRef, useState } from 'react'; import { lerp } from 'three/src/math/MathUtils'; import { Ad, AdType } from '../../../../../../components/Ad'; -import { applyPitchYawLimits } from '../../../../../../core/blitz/applyPitchYawLimits'; -import { isExplosive } from '../../../../../../core/blitz/isExplosive'; -import { resolvePenetrationCoefficient } from '../../../../../../core/blitz/resolvePenetrationCoefficient'; -import { asset } from '../../../../../../core/blitzkit/asset'; -import { coefficient } from '../../../../../../core/blitzkit/coefficient'; -import { equipmentDefinitions } from '../../../../../../core/blitzkit/equipmentDefinitions'; -import { provisionDefinitions } from '../../../../../../core/blitzkit/provisionDefinitions'; -import { tankCharacteristics } from '../../../../../../core/blitzkit/tankCharacteristics'; -import { - CREW_MEMBER_NAMES, - GUN_TYPE_NAMES, -} from '../../../../../../core/blitzkit/tankDefinitions/constants'; import { useAdExempt } from '../../../../../../hooks/useAdExempt'; import { useEquipment } from '../../../../../../hooks/useEquipment'; import { useTankModelDefinition } from '../../../../../../hooks/useTankModelDefinition'; @@ -463,7 +462,9 @@ export function Characteristics() { 1 ? ` x ${count}` : ''}`} + name={`${CREW_MEMBER_NAMES[member.type]}${ + count > 1 ? ` x ${count}` : '' + }`} unit="%" decimals={0} > diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Control.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Control.tsx index 5eaa28946..c92f61c5c 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Control.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Control.tsx @@ -1,12 +1,9 @@ +import { Pose } from '@blitzkit/core'; import { OrbitControls } from '@react-three/drei'; import { useThree } from '@react-three/fiber'; import { useEffect, useRef, useState } from 'react'; import { Vector3 } from 'three'; import { OrbitControls as OrbitControlsClass } from 'three-stdlib'; -import { applyPitchYawLimits } from '../../../../../core/blitz/applyPitchYawLimits'; -import { hasEquipment } from '../../../../../core/blitzkit/hasEquipment'; -import { modelDefinitions } from '../../../../../core/blitzkit/modelDefinitions'; -import { Pose, poseEvent } from '../../../../../core/blitzkit/pose'; import { useAwait } from '../../../../../hooks/useAwait'; import * as Duel from '../../../../../stores/duel'; import * as TankopediaEphemeral from '../../../../../stores/tankopediaEphemeral'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/GameModeSection.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/GameModeSection.tsx index 5ac66a431..adfbe125c 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/GameModeSection.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/GameModeSection.tsx @@ -1,9 +1,11 @@ +import { + asset, + consumableDefinitions, + gameDefinitions, + provisionDefinitions, +} from '@blitzkit/core'; import { Box, Flex, Heading, Text } from '@radix-ui/themes'; import { use } from 'react'; -import { asset } from '../../../../../../core/blitzkit/asset'; -import { consumableDefinitions } from '../../../../../../core/blitzkit/consumableDefinitions'; -import { gameDefinitions } from '../../../../../../core/blitzkit/gameDefinitions'; -import { provisionDefinitions } from '../../../../../../core/blitzkit/provisionDefinitions'; import * as Duel from '../../../../../../stores/duel'; export function GameModeSection() { @@ -33,7 +35,9 @@ export function GameModeSection() { direction="column" style={{ borderRadius: 'var(--radius-3)', - background: `url(${asset(`icons/game_mode_banners/${id}.webp`)})`, + background: `url(${asset( + `icons/game_mode_banners/${id}.webp`, + )})`, backgroundSize: 'cover', backgroundPosition: 'center', }} @@ -41,7 +45,9 @@ export function GameModeSection() { { const entries = Object.values(awaitedTankDefinitions); diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/index.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/index.tsx index 9e64f8499..08c01a629 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/index.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/index.tsx @@ -1,15 +1,16 @@ +import { + assertSecret, + asset, + modelDefinitions, + provisionDefinitions, +} from '@blitzkit/core'; +import strings from '@blitzkit/core/lang/en-US.json'; import { ChevronLeftIcon, MixIcon, UpdateIcon } from '@radix-ui/react-icons'; import { Button, Code, Dialog, Flex } from '@radix-ui/themes'; import { use, useState } from 'react'; import { classIcons } from '../../../../../../../components/ClassIcon'; import { Link } from '../../../../../../../components/Link'; import { ScienceIcon } from '../../../../../../../components/ScienceIcon'; -import { asset } from '../../../../../../../core/blitzkit/asset'; -import { modelDefinitions } from '../../../../../../../core/blitzkit/modelDefinitions'; -import { provisionDefinitions } from '../../../../../../../core/blitzkit/provisionDefinitions'; -import { assertSecret } from '../../../../../../../core/blitzkit/secret'; -import { tankToDuelMember } from '../../../../../../../core/blitzkit/tankToDuelMember'; -import strings from '../../../../../../../lang/en-US.json'; import * as App from '../../../../../../../stores/app'; import * as Duel from '../../../../../../../stores/duel'; import * as TankopediaEphemeral from '../../../../../../../stores/tankopediaEphemeral'; @@ -132,8 +133,8 @@ export function MetaSection() { protagonist.treeType === 'collector' ? 'blue' : protagonist.treeType === 'premium' - ? 'amber' - : undefined + ? 'amber' + : undefined } > {strings.common.tree_type[protagonist.treeType]} @@ -159,7 +160,11 @@ export function MetaSection() { )} {protagonist.price.value.toLocaleString()} @@ -167,7 +172,9 @@ export function MetaSection() { style={{ width: '1em', height: '1em' }} alt={protagonist.price.type} src={asset( - `icons/currencies/${protagonist.price.type === 'gold' ? 'gold' : 'silver'}.webp`, + `icons/currencies/${ + protagonist.price.type === 'gold' ? 'gold' : 'silver' + }.webp`, )} /> @@ -179,7 +186,9 @@ export function MetaSection() { style={{ width: '1em', height: '1em' }} alt={protagonist.price.type} src={asset( - `icons/currencies/${protagonist.price.type === 'gold' ? 'gold' : 'silver'}.webp`, + `icons/currencies/${ + protagonist.price.type === 'gold' ? 'gold' : 'silver' + }.webp`, )} /> diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandbox.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandbox.tsx index 9883c309b..dbbaf08d6 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandbox.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandbox.tsx @@ -9,13 +9,7 @@ import { import { Armor } from '../../../../../../components/Armor'; import { ArmorPlateDisplay } from '../../../../../../components/Armor/components/ArmorPlateDisplay'; import { ShotDisplay } from '../../../../../../components/Armor/components/ShotDisplay'; -import { - StaticArmor, - ThicknessRange, -} from '../../../../../../components/Armor/components/StaticArmor'; -import { applyPitchYawLimits } from '../../../../../../core/blitz/applyPitchYawLimits'; -import { modelTransformEvent } from '../../../../../../core/blitzkit/modelTransform'; -import { Pose, poseEvent } from '../../../../../../core/blitzkit/pose'; +import { StaticArmor } from '../../../../../../components/Armor/components/StaticArmor'; import { useEquipment } from '../../../../../../hooks/useEquipment'; import useOnScreen from '../../../../../../hooks/useOnScreen'; import { useTankModelDefinition } from '../../../../../../hooks/useTankModelDefinition'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandboxLoader.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandboxLoader.tsx index a2fee08da..87849429f 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandboxLoader.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandboxLoader.tsx @@ -1,6 +1,6 @@ +import { tankIcon } from '@blitzkit/core'; import { Flex, FlexProps, Progress } from '@radix-ui/themes'; import { useProgress } from '@react-three/drei'; -import { tankIcon } from '../../../../../../core/blitzkit/tankIcon'; type TankSandboxLoaderProps = Omit & { id: number; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TechTreeSection/components/Node.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TechTreeSection/components/Node.tsx index 8dade4fd4..e430dc12c 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TechTreeSection/components/Node.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TechTreeSection/components/Node.tsx @@ -1,11 +1,13 @@ +import { + asset, + averageDefinitions, + formatCompact, + tankDefinitions, + TIER_ROMAN_NUMERALS, +} from '@blitzkit/core'; import { Box, Flex, Text } from '@radix-ui/themes'; import Link from 'next/link'; import { use } from 'react'; -import { asset } from '../../../../../../../../core/blitzkit/asset'; -import { averageDefinitions } from '../../../../../../../../core/blitzkit/averageDefinitions'; -import { tankDefinitions } from '../../../../../../../../core/blitzkit/tankDefinitions'; -import { TIER_ROMAN_NUMERALS } from '../../../../../../../../core/blitzkit/tankDefinitions/constants'; -import { formatCompact } from '../../../../../../../../core/math/formatCompact'; import * as TankopediaEphemeral from '../../../../../../../../stores/tankopediaEphemeral'; interface NodeProps { diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TechTreeSection/index.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TechTreeSection/index.tsx index e8dbcdad4..9991f4776 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TechTreeSection/index.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TechTreeSection/index.tsx @@ -1,9 +1,7 @@ +import { asset, imgur, tankDefinitions } from '@blitzkit/core'; import { CaretLeftIcon, CaretRightIcon, PlusIcon } from '@radix-ui/react-icons'; import { Flex, Heading, IconButton, ScrollArea, Text } from '@radix-ui/themes'; import { Fragment, use, useEffect, useMemo, useRef, useState } from 'react'; -import { asset } from '../../../../../../../core/blitzkit/asset'; -import { imgur } from '../../../../../../../core/blitzkit/imgur'; -import { tankDefinitions } from '../../../../../../../core/blitzkit/tankDefinitions'; import * as Duel from '../../../../../../../stores/duel'; import * as TankopediaEphemeral from '../../../../../../../stores/tankopediaEphemeral'; import { Arrow } from './components/Arrow'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/Options/components/DynamicArmorSwitcher.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/Options/components/DynamicArmorSwitcher.tsx index a78c31a88..5a9bfc9c6 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/Options/components/DynamicArmorSwitcher.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/Options/components/DynamicArmorSwitcher.tsx @@ -1,6 +1,5 @@ import { IconButton } from '@radix-ui/themes'; import { invalidate } from '@react-three/fiber'; -import { asset } from '../../../../../../../../../core/blitzkit/asset'; import { useArmor } from '../../../../../../../../../hooks/useArmor'; import * as Duel from '../../../../../../../../../stores/duel'; import * as TankopediaEphemeral from '../../../../../../../../../stores/tankopediaEphemeral'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/Options/index.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/Options/index.tsx index aeb7470ae..d9f83fb46 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/Options/index.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/Options/index.tsx @@ -1,3 +1,4 @@ +import { imgur, uniqueGuns } from '@blitzkit/core'; import { CameraIcon, CopyIcon, @@ -21,17 +22,6 @@ import { } from '@radix-ui/themes'; import { invalidate } from '@react-three/fiber'; import { RefObject, useEffect, useState } from 'react'; -import { ThicknessRange } from '../../../../../../../../components/Armor/components/StaticArmor'; -import { ModuleButton } from '../../../../../../../../components/ModuleButtons/ModuleButton'; -import { SmallTankIcon } from '../../../../../../../../components/SmallTankIcon'; -import { resolveNearPenetration } from '../../../../../../../../core/blitz/resolveNearPenetration'; -import { resolvePenetrationCoefficient } from '../../../../../../../../core/blitz/resolvePenetrationCoefficient'; -import { asset } from '../../../../../../../../core/blitzkit/asset'; -import { imgur } from '../../../../../../../../core/blitzkit/imgur'; -import { Pose, poseEvent } from '../../../../../../../../core/blitzkit/pose'; -import { TIER_ROMAN_NUMERALS } from '../../../../../../../../core/blitzkit/tankDefinitions/constants'; -import { uniqueGuns } from '../../../../../../../../core/blitzkit/uniqueGuns'; -import { useArmor } from '../../../../../../../../hooks/useArmor'; import { useEquipment } from '../../../../../../../../hooks/useEquipment'; import { useFullScreen } from '../../../../../../../../hooks/useFullScreen'; import { useFullscreenAvailability } from '../../../../../../../../hooks/useFullscreenAvailability'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/TankModel.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/TankModel.tsx index 8d2ee93a6..6273816e0 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/TankModel.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/components/TankModel.tsx @@ -1,12 +1,6 @@ import { invalidate, ThreeEvent, useThree } from '@react-three/fiber'; import { memo, useRef } from 'react'; import { Group, Mesh, MeshStandardMaterial, Vector2 } from 'three'; -import { ModelTankWrapper } from '../../../../../../../components/Armor/components/ModelTankWrapper'; -import { applyPitchYawLimits } from '../../../../../../../core/blitz/applyPitchYawLimits'; -import { hasEquipment } from '../../../../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../../../../core/blitzkit/jsxTree'; -import { modelTransformEvent } from '../../../../../../../core/blitzkit/modelTransform'; -import { normalizeAngleRad } from '../../../../../../../core/math/normalizeAngleRad'; import { useModel } from '../../../../../../../hooks/useModel'; import { useTankModelDefinition } from '../../../../../../../hooks/useTankModelDefinition'; import { useTankTransform } from '../../../../../../../hooks/useTankTransform'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/QuickInputs/index.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/QuickInputs/index.tsx index 928468077..c1bd067c4 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/QuickInputs/index.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/QuickInputs/index.tsx @@ -1,12 +1,8 @@ +import { modelTransformEvent, ModelTransformEventData } from '@blitzkit/core'; import { HeightIcon, WidthIcon } from '@radix-ui/react-icons'; import { Flex, TextField } from '@radix-ui/themes'; import { useEffect, useRef } from 'react'; import { degToRad, radToDeg } from 'three/src/math/MathUtils'; -import { applyPitchYawLimits } from '../../../../../../core/blitz/applyPitchYawLimits'; -import { - modelTransformEvent, - ModelTransformEventData, -} from '../../../../../../core/blitzkit/modelTransform'; import { useEquipment } from '../../../../../../hooks/useEquipment'; import { useTankModelDefinition } from '../../../../../../hooks/useTankModelDefinition'; import * as Duel from '../../../../../../stores/duel'; @@ -23,11 +19,6 @@ export function QuickInputs() { const gunModelDefinition = turretModelDefinition.guns[protagonist.gun.id]; const initialGunPitch = tankModelDefinition.turretRotation?.pitch ?? 0; const hasImprovedVerticalStabilizer = useEquipment(122); - const antagonist = Duel.use((state) => state.antagonist.tank); - const compareTanks = - protagonist.tank.id === antagonist.id - ? [protagonist.tank.id] - : [protagonist.tank.id, antagonist.id]; useEffect(() => { yawInput.current!.value = radToDeg(protagonist.yaw).toFixed(1); diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/ShotDisplaySection.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/ShotDisplaySection.tsx index 07418e0f6..abad1ac6f 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/ShotDisplaySection.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/ShotDisplaySection.tsx @@ -1,5 +1,4 @@ import { Flex } from '@radix-ui/themes'; -import { ShotDisplayCard } from '../../../../../components/Armor/components/ShotDisplayCard'; import * as TankEphemeral from '../../../../../stores/tankopediaEphemeral'; export function ShotDisplaySection() { diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/VideoSection.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/VideoSection.tsx index ab161213a..c915e7d6f 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/VideoSection.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/VideoSection.tsx @@ -1,11 +1,9 @@ +import { reviews, Var, youtubers } from '@blitzkit/core'; import { Box, Flex, Heading, Text } from '@radix-ui/themes'; import { use } from 'react'; import { Link } from '../../../../../components/Link'; import PageWrapper from '../../../../../components/PageWrapper'; import { VerifiedIcon } from '../../../../../components/VerifiedIcon'; -import { youtubers } from '../../../../../constants/youtubers'; -import { reviews } from '../../../../../core/blitzkit/reviews'; -import { Var } from '../../../../../core/blitzkit/var'; import * as Duel from '../../../../../stores/duel'; export function VideoSection() { diff --git a/packages/website/src/app/tools/tankopedia/[id]/layout.tsx b/packages/website/src/app/tools/tankopedia/[id]/layout.tsx index 7be08f24b..68acdf667 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/layout.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/layout.tsx @@ -1,10 +1,12 @@ +import { + modelDefinitions, + provisionDefinitions, + tankDefinitions, + tankIcon, + TIER_ROMAN_NUMERALS, +} from '@blitzkit/core'; +import strings from '@blitzkit/core/lang/en-US.json'; import { ReactNode } from 'react'; -import { modelDefinitions } from '../../../../core/blitzkit/modelDefinitions'; -import { provisionDefinitions } from '../../../../core/blitzkit/provisionDefinitions'; -import { tankDefinitions } from '../../../../core/blitzkit/tankDefinitions'; -import { TIER_ROMAN_NUMERALS } from '../../../../core/blitzkit/tankDefinitions/constants'; -import { tankIcon } from '../../../../core/blitzkit/tankIcon'; -import strings from '../../../../lang/en-US.json'; import * as Duel from '../../../../stores/duel'; import * as TankopediaEphemeral from '../../../../stores/tankopediaEphemeral'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/page.tsx b/packages/website/src/app/tools/tankopedia/[id]/page.tsx index 313b2ed26..882f6403f 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/page.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/page.tsx @@ -1,12 +1,12 @@ 'use client'; +import { TIER_ROMAN_NUMERALS } from '@blitzkit/core'; +import strings from '@blitzkit/core/lang/en-US.json'; import { invalidate } from '@react-three/fiber'; import { useEffect } from 'react'; import { AdMidSectionResponsive } from '../../../../components/AdMidSectionResponsive'; import PageWrapper from '../../../../components/PageWrapper'; -import { TIER_ROMAN_NUMERALS } from '../../../../core/blitzkit/tankDefinitions/constants'; import { useAdExempt } from '../../../../hooks/useAdExempt'; -import strings from '../../../../lang/en-US.json'; import * as Duel from '../../../../stores/duel'; import * as TankopediaEphemeral from '../../../../stores/tankopediaEphemeral'; import { CalloutsSection } from './components/CalloutsSection'; diff --git a/src/components/Armor/components/ArmorPlateDisplay.tsx b/packages/website/src/components/Armor/components/ArmorPlateDisplay.tsx similarity index 95% rename from src/components/Armor/components/ArmorPlateDisplay.tsx rename to packages/website/src/components/Armor/components/ArmorPlateDisplay.tsx index 050e9d195..aa83dd6ac 100644 --- a/src/components/Armor/components/ArmorPlateDisplay.tsx +++ b/packages/website/src/components/Armor/components/ArmorPlateDisplay.tsx @@ -10,10 +10,9 @@ import { import { Html } from '@react-three/drei'; import { useRef } from 'react'; import { radToDeg } from 'three/src/math/MathUtils'; -import * as App from '../../../../packages/website/src/stores/app'; -import * as Duel from '../../../../packages/website/src/stores/duel'; -import * as TankopediaEphemeral from '../../../../packages/website/src/stores/tankopediaEphemeral'; -import { resolveArmorIndex } from '../../../core/blitzkit/resolveArmorIndex'; +import * as App from '../../../stores/app'; +import * as Duel from '../../../stores/duel'; +import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; import { layerTypeNames } from './ShotDisplayCard'; import { ArmorType } from './SpacedArmorScene'; diff --git a/src/components/Armor/components/ModelTankWrapper.tsx b/packages/website/src/components/Armor/components/ModelTankWrapper.tsx similarity index 100% rename from src/components/Armor/components/ModelTankWrapper.tsx rename to packages/website/src/components/Armor/components/ModelTankWrapper.tsx diff --git a/src/components/Armor/components/PrimaryArmorScene.tsx b/packages/website/src/components/Armor/components/PrimaryArmorScene.tsx similarity index 94% rename from src/components/Armor/components/PrimaryArmorScene.tsx rename to packages/website/src/components/Armor/components/PrimaryArmorScene.tsx index 90afd0ff4..330bfd3ab 100644 --- a/src/components/Armor/components/PrimaryArmorScene.tsx +++ b/packages/website/src/components/Armor/components/PrimaryArmorScene.tsx @@ -1,12 +1,9 @@ import { memo, useRef } from 'react'; import { Group } from 'three'; -import * as Duel from '../../../../packages/website/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 * as Duel from '../../../stores/duel'; import { ModelTankWrapper } from './ModelTankWrapper'; import { PrimaryArmorSceneComponent } from './PrimaryArmorSceneComponent'; diff --git a/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx similarity index 87% rename from src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx rename to packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx index 6f36d8af4..d993e9dea 100644 --- a/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx +++ b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx @@ -1,16 +1,11 @@ -import { resolveNearPenetration } from '@blitzkit/core/src/blitzkit/resolveNearPenetration'; +import { isExplosive } from '@blitzkit/core/src/blitzkit/isExplosive'; +import { resolvePenetrationCoefficient } from '@blitzkit/core/src/blitzkit/resolvePenetrationCoefficient'; import { useFrame } from '@react-three/fiber'; import { useEffect } from 'react'; import { MeshBasicMaterial, Object3D, ShaderMaterial, Vector2 } from 'three'; import { degToRad } from 'three/src/math/MathUtils'; -import * as Duel from '../../../../../packages/website/src/stores/duel'; -import * as TankopediaPersistent from '../../../../../packages/website/src/stores/tankopediaPersistent'; -import { canSplash } from '../../../../core/blitz/canSplash'; -import { isExplosive } from '../../../../core/blitz/isExplosive'; -import { resolvePenetrationCoefficient } from '../../../../core/blitz/resolvePenetrationCoefficient'; -import { hasEquipment } from '../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../core/blitzkit/jsxTree'; -import { ShellDefinition } from '../../../../core/blitzkit/tankDefinitions'; +import * as Duel from '../../../../stores/duel'; +import * as TankopediaPersistent from '../../../../stores/tankopediaPersistent'; import fragmentShader from './shaders/fragment.glsl'; import vertexShader from './shaders/vertex.glsl'; import { spacedArmorRenderTarget } from './target'; diff --git a/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl similarity index 100% rename from src/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl rename to packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl diff --git a/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl similarity index 100% rename from src/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl rename to packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl diff --git a/src/components/Armor/components/PrimaryArmorSceneComponent/target.tsx b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/target.tsx similarity index 100% rename from src/components/Armor/components/PrimaryArmorSceneComponent/target.tsx rename to packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/target.tsx diff --git a/src/components/Armor/components/ShotDisplay.tsx b/packages/website/src/components/Armor/components/ShotDisplay.tsx similarity index 98% rename from src/components/Armor/components/ShotDisplay.tsx rename to packages/website/src/components/Armor/components/ShotDisplay.tsx index 44ff453f1..42ecbb769 100644 --- a/src/components/Armor/components/ShotDisplay.tsx +++ b/packages/website/src/components/Armor/components/ShotDisplay.tsx @@ -15,8 +15,6 @@ import { Path, Quaternion, } from 'three'; -import * as TankopediaEphemeral from '../../../../packages/website/src/stores/tankopediaEphemeral'; -import { J_HAT, K_HAT } from '../../../constants/axis'; import { useFullScreen } from '../../../hooks/useFullScreen'; import { ShotDisplayCard } from './ShotDisplayCard'; diff --git a/src/components/Armor/components/ShotDisplayCard.tsx b/packages/website/src/components/Armor/components/ShotDisplayCard.tsx similarity index 94% rename from src/components/Armor/components/ShotDisplayCard.tsx rename to packages/website/src/components/Armor/components/ShotDisplayCard.tsx index 85deec12b..cc54c0add 100644 --- a/src/components/Armor/components/ShotDisplayCard.tsx +++ b/packages/website/src/components/Armor/components/ShotDisplayCard.tsx @@ -8,7 +8,7 @@ import { } from '@radix-ui/themes'; import { ComponentProps } from 'react'; import { radToDeg } from 'three/src/math/MathUtils'; -import * as TankopediaEphemeral from '../../../../packages/website/src/stores/tankopediaEphemeral'; +import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; import { shotStatusColors } from './ShotDisplay'; import { ArmorType } from './SpacedArmorScene'; import { ExternalModuleVariant } from './SpacedArmorSceneComponent'; @@ -79,7 +79,9 @@ function LayerEntry({ <> {Math.round(layer.thicknessAngled).toLocaleString()} - {`mm${angle === undefined ? '' : ` ${Math.round(radToDeg(angle))}°`}`} + {`mm${ + angle === undefined ? '' : ` ${Math.round(radToDeg(angle))}°` + }`} @@ -193,7 +195,10 @@ export function ShotDisplayCard({ shot, ...props }: ShotDisplayCardProps) { const layerIndex = layer.type === null ? undefined - : `${(shot.containsGaps ? shiftedIndex / 2 : shiftedIndex) + 1}.`; + : `${ + (shot.containsGaps ? shiftedIndex / 2 : shiftedIndex) + + 1 + }.`; const shotStatusColor = shot.out!.status === 'splash' ? shotStatusColors.splash diff --git a/src/components/Armor/components/SpacedArmorScene.tsx b/packages/website/src/components/Armor/components/SpacedArmorScene.tsx similarity index 94% rename from src/components/Armor/components/SpacedArmorScene.tsx rename to packages/website/src/components/Armor/components/SpacedArmorScene.tsx index ae31207ee..48d25db64 100644 --- a/src/components/Armor/components/SpacedArmorScene.tsx +++ b/packages/website/src/components/Armor/components/SpacedArmorScene.tsx @@ -1,13 +1,10 @@ import { memo, useRef } from 'react'; import { Group, Plane, Scene, Vector3 } from 'three'; -import * as Duel from '../../../../packages/website/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 * as Duel from '../../../stores/duel'; import { ModelTankWrapper } from './ModelTankWrapper'; import { SpacedArmorSceneComponent } from './SpacedArmorSceneComponent'; @@ -175,7 +172,9 @@ export const SpacedArmorScene = memo(({ scene }) => { })} {modelNodes.map((node) => { - const gunString = `gun_${gunModelDefinition.model.toString().padStart(2, '0')}`; + const gunString = `gun_${gunModelDefinition.model + .toString() + .padStart(2, '0')}`; const isCurrentGun = gunModelDefinition.mask ? node.name.startsWith(gunString) : node.name === gunString; diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx similarity index 87% rename from src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx index 323c26e64..c5a372335 100644 --- a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx +++ b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx @@ -1,4 +1,4 @@ -import { resolveNearPenetration } from '@blitzkit/core/src/blitzkit/resolveNearPenetration'; +import { resolvePenetrationCoefficient } from '@blitzkit/core/src/blitzkit/resolvePenetrationCoefficient'; import { useEffect } from 'react'; import { AdditiveBlending, @@ -8,11 +8,7 @@ import { ShaderMaterial, } from 'three'; import { ArmorUserData, ExternalModuleVariant } from '../..'; -import * as Duel from '../../../../../../../packages/website/src/stores/duel'; -import { resolvePenetrationCoefficient } from '../../../../../../core/blitz/resolvePenetrationCoefficient'; -import { hasEquipment } from '../../../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../../../core/blitzkit/jsxTree'; -import { ShellDefinition } from '../../../../../../core/blitzkit/tankDefinitions'; +import * as Duel from '../../../../../../stores/duel'; import { ArmorType } from '../../../SpacedArmorScene'; import fragmentShader from './shaders/fragment.glsl'; import vertexShader from './shaders/vertex.glsl'; diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl similarity index 100% rename from src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl similarity index 100% rename from src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx similarity index 86% rename from src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx index 7bcc33862..53a3db8fb 100644 --- a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx +++ b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx @@ -1,4 +1,5 @@ -import { resolveNearPenetration } from '@blitzkit/core/src/blitzkit/resolveNearPenetration'; +import { isExplosive } from '@blitzkit/core/src/blitzkit/isExplosive'; +import { resolvePenetrationCoefficient } from '@blitzkit/core/src/blitzkit/resolvePenetrationCoefficient'; import { useEffect } from 'react'; import { AdditiveBlending, @@ -8,12 +9,7 @@ import { } from 'three'; import { degToRad } from 'three/src/math/MathUtils'; import { ArmorUserData } from '../..'; -import * as Duel from '../../../../../../../packages/website/src/stores/duel'; -import { isExplosive } from '../../../../../../core/blitz/isExplosive'; -import { resolvePenetrationCoefficient } from '../../../../../../core/blitz/resolvePenetrationCoefficient'; -import { hasEquipment } from '../../../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../../../core/blitzkit/jsxTree'; -import { ShellDefinition } from '../../../../../../core/blitzkit/tankDefinitions'; +import * as Duel from '../../../../../../stores/duel'; import { ArmorType } from '../../../SpacedArmorScene'; import fragmentShader from './shaders/fragment.glsl'; import vertexShader from './shaders/vertex.glsl'; diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl similarity index 100% rename from src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl similarity index 100% rename from src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx similarity index 94% rename from src/components/Armor/components/SpacedArmorSceneComponent/index.tsx rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx index 995dabe6f..54bad06e4 100644 --- a/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx +++ b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx @@ -1,4 +1,5 @@ -import { resolveNearPenetration } from '@blitzkit/core/src/blitzkit/resolveNearPenetration'; +import { isExplosive } from '@blitzkit/core/src/blitzkit/isExplosive'; +import { resolvePenetrationCoefficient } from '@blitzkit/core/src/blitzkit/resolvePenetrationCoefficient'; import { useThree } from '@react-three/fiber'; import { useCallback } from 'react'; import { @@ -12,14 +13,8 @@ import { Vector3, } from 'three'; import { degToRad } from 'three/src/math/MathUtils'; -import * as Duel from '../../../../../packages/website/src/stores/duel'; -import * as TankopediaEphemeral from '../../../../../packages/website/src/stores/tankopediaEphemeral'; -import { isExplosive } from '../../../../core/blitz/isExplosive'; -import { resolvePenetrationCoefficient } from '../../../../core/blitz/resolvePenetrationCoefficient'; -import { hasEquipment } from '../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../core/blitzkit/jsxTree'; -import { ShellType } from '../../../../core/blitzkit/tankDefinitions'; -import { discardClippingPlane } from '../../../../core/three/discardClippingPlane'; +import * as Duel from '../../../../stores/duel'; +import * as TankopediaEphemeral from '../../../../stores/tankopediaEphemeral'; import { ArmorType } from '../SpacedArmorScene'; import { SpacedArmorSubExternal } from './components/SpacedArmorSubExternal'; import { SpacedArmorSubSpaced } from './components/SpacedArmorSubSpaced'; diff --git a/src/components/Armor/components/StaticArmor.tsx b/packages/website/src/components/Armor/components/StaticArmor.tsx similarity index 94% rename from src/components/Armor/components/StaticArmor.tsx rename to packages/website/src/components/Armor/components/StaticArmor.tsx index 23db1272a..c4ccf9aa0 100644 --- a/src/components/Armor/components/StaticArmor.tsx +++ b/packages/website/src/components/Armor/components/StaticArmor.tsx @@ -1,20 +1,14 @@ +import { normalizeAngleRad } from '@blitzkit/core/src/math/normalizeAngleRad'; import { ThreeEvent, useThree } from '@react-three/fiber'; import { memo, useRef } from 'react'; import { Group, Plane, Vector2, Vector3 } from 'three'; -import * as Duel from '../../../../packages/website/src/stores/duel'; -import * as TankopediaEphemeral from '../../../../packages/website/src/stores/tankopediaEphemeral'; -import * as TankopediaPersistent from '../../../../packages/website/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 { normalizeAngleRad } from '../../../core/math/normalizeAngleRad'; import { useArmor } from '../../../hooks/useArmor'; import { useModel } from '../../../hooks/useModel'; import { useTankModelDefinition } from '../../../hooks/useTankModelDefinition'; import { useTankTransform } from '../../../hooks/useTankTransform'; +import * as Duel from '../../../stores/duel'; +import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; +import * as TankopediaPersistent from '../../../stores/tankopediaPersistent'; import { ModelTankWrapper } from './ModelTankWrapper'; import { ArmorType } from './SpacedArmorScene'; import { StaticArmorSceneComponent } from './StaticArmorSceneComponent'; @@ -319,7 +313,9 @@ export const StaticArmor = memo(({ thicknessRange }) => { })} {modelNodes.map((node) => { - const gunString = `gun_${gunModelDefinition.model.toString().padStart(2, '0')}`; + const gunString = `gun_${gunModelDefinition.model + .toString() + .padStart(2, '0')}`; const isCurrentGun = gunModelDefinition.mask ? node.name.startsWith(gunString) : node.name === gunString; diff --git a/src/components/Armor/components/StaticArmorSceneComponent.tsx b/packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx similarity index 93% rename from src/components/Armor/components/StaticArmorSceneComponent.tsx rename to packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx index 511145690..6d5c4f981 100644 --- a/src/components/Armor/components/StaticArmorSceneComponent.tsx +++ b/packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx @@ -1,3 +1,4 @@ +import { I_HAT, J_HAT } from '@blitzkit/core/src/math/axis'; import { MeshProps, useThree } from '@react-three/fiber'; import { clamp } from 'lodash'; import { useEffect, useMemo } from 'react'; @@ -14,15 +15,7 @@ import { Quaternion, Vector3, } from 'three'; -import * as TankopediaEphemeral from '../../../../packages/website/src/stores/tankopediaEphemeral'; -import { I_HAT, J_HAT } from '../../../constants/axis'; -import { unrotateDavaVector } from '../../../core/blitz/unrotateDavaVector'; -import { jsxTree } from '../../../core/blitzkit/jsxTree'; -import { - modelTransformEvent, - ModelTransformEventData, -} from '../../../core/blitzkit/modelTransform'; -import { discardClippingPlane } from '../../../core/three/discardClippingPlane'; +import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; import { ArmorType } from './SpacedArmorScene'; import { ArmorUserData, diff --git a/src/components/Armor/index.tsx b/packages/website/src/components/Armor/index.tsx similarity index 100% rename from src/components/Armor/index.tsx rename to packages/website/src/components/Armor/index.tsx diff --git a/src/components/ConsumablesManager.tsx b/packages/website/src/components/ConsumablesManager.tsx similarity index 95% rename from src/components/ConsumablesManager.tsx rename to packages/website/src/components/ConsumablesManager.tsx index 14bf5534d..f71251d4e 100644 --- a/src/components/ConsumablesManager.tsx +++ b/packages/website/src/components/ConsumablesManager.tsx @@ -1,5 +1,5 @@ +import { ConsumableEntry } from '@blitzkit/core/src/blitzkit/consumableDefinitions'; import { Flex, FlexProps } from '@radix-ui/themes'; -import { ConsumableEntry } from '../core/blitzkit/consumableDefinitions'; import { ConsumableButton } from './ModuleButtons/ConsumableButton'; type ConsumablesManagerProps = FlexProps & { diff --git a/src/components/CrewSkillManager.tsx b/packages/website/src/components/CrewSkillManager.tsx similarity index 81% rename from src/components/CrewSkillManager.tsx rename to packages/website/src/components/CrewSkillManager.tsx index 7f3b3c64f..5f4fa8ce0 100644 --- a/src/components/CrewSkillManager.tsx +++ b/packages/website/src/components/CrewSkillManager.tsx @@ -1,10 +1,8 @@ +import { asset, Tier, TIER_ROMAN_NUMERALS } from '@blitzkit/core'; +import { permanentSkills } from '@blitzkit/core/src/blitz/permanentSkills'; +import { skillDefinitions } from '@blitzkit/core/src/blitzkit/skillDefinitions'; import { Flex } from '@radix-ui/themes'; import { use } from 'react'; -import { permanentSkills } from '../app/tools/tankopedia/[id]/components/Characteristics/components/Skills/constants'; -import { asset } from '../core/blitzkit/asset'; -import { skillDefinitions } from '../core/blitzkit/skillDefinitions'; -import { Tier } from '../core/blitzkit/tankDefinitions'; -import { TIER_ROMAN_NUMERALS } from '../core/blitzkit/tankDefinitions/constants'; import { GenericTankComponentButton } from './ModuleButtons/GenericTankComponentButton'; interface CrewSkillManagerProps { diff --git a/src/components/EquipmentManager.tsx b/packages/website/src/components/EquipmentManager.tsx similarity index 93% rename from src/components/EquipmentManager.tsx rename to packages/website/src/components/EquipmentManager.tsx index 187e16316..ccd9d3f31 100644 --- a/src/components/EquipmentManager.tsx +++ b/packages/website/src/components/EquipmentManager.tsx @@ -1,7 +1,6 @@ +import { EquipmentPreset } from '@blitzkit/core/src/blitzkit/equipmentDefinitions'; import { Flex } from '@radix-ui/themes'; import { cloneDeep } from 'lodash'; -import { EquipmentMatrix } from '../../packages/website/src/stores/duel'; -import { EquipmentPreset } from '../core/blitzkit/equipmentDefinitions'; import { EquipmentButton } from './ModuleButtons/EquipmentButton'; interface EquipmentManagerProps { diff --git a/src/components/ModuleButtons/ConsumableButton.tsx b/packages/website/src/components/ModuleButtons/ConsumableButton.tsx similarity index 88% rename from src/components/ModuleButtons/ConsumableButton.tsx rename to packages/website/src/components/ModuleButtons/ConsumableButton.tsx index 8cc8295ba..2eb336ec1 100644 --- a/src/components/ModuleButtons/ConsumableButton.tsx +++ b/packages/website/src/components/ModuleButtons/ConsumableButton.tsx @@ -1,8 +1,8 @@ +import { asset } from '@blitzkit/core'; +import { consumableDefinitions } from '@blitzkit/core/src/blitzkit/consumableDefinitions'; import { ClockIcon, ReloadIcon } from '@radix-ui/react-icons'; import { Flex, Text } from '@radix-ui/themes'; import { use } from 'react'; -import { asset } from '../../core/blitzkit/asset'; -import { consumableDefinitions } from '../../core/blitzkit/consumableDefinitions'; import { useDelta } from '../../hooks/useDelta'; import { GenericTankComponentButton } from './GenericTankComponentButton'; import { TankComponentButtonProps } from './TankComponentButton'; @@ -39,8 +39,8 @@ export function ConsumableButton({ durationDelta > 0 ? 'green' : durationDelta < 0 - ? 'tomato' - : undefined + ? 'tomato' + : undefined } > @@ -56,8 +56,8 @@ export function ConsumableButton({ cooldownDelta < 0 ? 'green' : cooldownDelta > 0 - ? 'tomato' - : undefined + ? 'tomato' + : undefined } > diff --git a/src/components/ModuleButtons/EquipmentButton.tsx b/packages/website/src/components/ModuleButtons/EquipmentButton.tsx similarity index 82% rename from src/components/ModuleButtons/EquipmentButton.tsx rename to packages/website/src/components/ModuleButtons/EquipmentButton.tsx index d56c73e03..b63309f57 100644 --- a/src/components/ModuleButtons/EquipmentButton.tsx +++ b/packages/website/src/components/ModuleButtons/EquipmentButton.tsx @@ -1,6 +1,6 @@ +import { asset } from '@blitzkit/core'; +import { equipmentDefinitions } from '@blitzkit/core/src/blitzkit/equipmentDefinitions'; import { use } from 'react'; -import { asset } from '../../core/blitzkit/asset'; -import { equipmentDefinitions } from '../../core/blitzkit/equipmentDefinitions'; import { GenericTankComponentButton } from './GenericTankComponentButton'; import { TankComponentButtonProps } from './TankComponentButton'; diff --git a/src/components/ModuleButtons/GenericTankComponentButton.tsx b/packages/website/src/components/ModuleButtons/GenericTankComponentButton.tsx similarity index 100% rename from src/components/ModuleButtons/GenericTankComponentButton.tsx rename to packages/website/src/components/ModuleButtons/GenericTankComponentButton.tsx diff --git a/src/components/ModuleButtons/ModuleButton.tsx b/packages/website/src/components/ModuleButtons/ModuleButton.tsx similarity index 100% rename from src/components/ModuleButtons/ModuleButton.tsx rename to packages/website/src/components/ModuleButtons/ModuleButton.tsx diff --git a/src/components/ModuleButtons/ProvisionButton.tsx b/packages/website/src/components/ModuleButtons/ProvisionButton.tsx similarity index 81% rename from src/components/ModuleButtons/ProvisionButton.tsx rename to packages/website/src/components/ModuleButtons/ProvisionButton.tsx index 099dbc0bc..8af02ede9 100644 --- a/src/components/ModuleButtons/ProvisionButton.tsx +++ b/packages/website/src/components/ModuleButtons/ProvisionButton.tsx @@ -1,6 +1,6 @@ +import { asset } from '@blitzkit/core'; +import { provisionDefinitions } from '@blitzkit/core/src/blitzkit/provisionDefinitions'; import { use } from 'react'; -import { asset } from '../../core/blitzkit/asset'; -import { provisionDefinitions } from '../../core/blitzkit/provisionDefinitions'; import { GenericTankComponentButton } from './GenericTankComponentButton'; import { TankComponentButtonProps } from './TankComponentButton'; diff --git a/src/components/ModuleButtons/ShellButton.tsx b/packages/website/src/components/ModuleButtons/ShellButton.tsx similarity index 100% rename from src/components/ModuleButtons/ShellButton.tsx rename to packages/website/src/components/ModuleButtons/ShellButton.tsx diff --git a/src/components/ModuleButtons/TankComponentButton.tsx b/packages/website/src/components/ModuleButtons/TankComponentButton.tsx similarity index 100% rename from src/components/ModuleButtons/TankComponentButton.tsx rename to packages/website/src/components/ModuleButtons/TankComponentButton.tsx diff --git a/src/components/ModuleManager.tsx b/packages/website/src/components/ModuleManager.tsx similarity index 100% rename from src/components/ModuleManager.tsx rename to packages/website/src/components/ModuleManager.tsx diff --git a/packages/website/src/components/Navbar/components/WargamingAccountName.tsx b/packages/website/src/components/Navbar/components/WargamingAccountName.tsx index d0f8118e2..f6d3225f6 100644 --- a/packages/website/src/components/Navbar/components/WargamingAccountName.tsx +++ b/packages/website/src/components/Navbar/components/WargamingAccountName.tsx @@ -1,7 +1,6 @@ import { idToRegion } from '@blitzkit/core'; import { Text } from '@radix-ui/themes'; import { use, useMemo } from 'react'; -import { getAccountInfo } from '../../../../../../src/core/blitz/getAccountInfo'; import * as App from '../../../stores/app'; export function WargamingAccountName() { diff --git a/src/components/ProvisionsManager.tsx b/packages/website/src/components/ProvisionsManager.tsx similarity index 100% rename from src/components/ProvisionsManager.tsx rename to packages/website/src/components/ProvisionsManager.tsx diff --git a/src/core/blitz/applyPitchYawLimits.ts b/packages/website/src/core/blitz/applyPitchYawLimits.ts similarity index 97% rename from src/core/blitz/applyPitchYawLimits.ts rename to packages/website/src/core/blitz/applyPitchYawLimits.ts index 10fb13a15..a74014cea 100644 --- a/src/core/blitz/applyPitchYawLimits.ts +++ b/packages/website/src/core/blitz/applyPitchYawLimits.ts @@ -2,9 +2,9 @@ import { PitchLimits, YawLimits, } from '@blitzkit/core/src/blitzkit/modelDefinitions'; +import { normalizeAngleRad } from '@blitzkit/core/src/math/normalizeAngleRad'; import { clamp } from 'lodash'; import { degToRad } from 'three/src/math/MathUtils'; -import { normalizeAngleRad } from '../math/normalizeAngleRad'; export function applyPitchYawLimits( pitch: number, // rad diff --git a/src/core/blitz/canSplash.ts b/packages/website/src/core/blitz/canSplash.ts similarity index 60% rename from src/core/blitz/canSplash.ts rename to packages/website/src/core/blitz/canSplash.ts index 9d1b32067..e67604866 100644 --- a/src/core/blitz/canSplash.ts +++ b/packages/website/src/core/blitz/canSplash.ts @@ -1,5 +1,3 @@ -import { ShellDefinition, ShellType } from '../blitzkit/tankDefinitions'; - export function canSplash(type: ShellDefinition['type']): type is ShellType.HE { return type === ShellType.HE; } diff --git a/src/core/blitz/correctZYTuple.ts b/packages/website/src/core/blitz/correctZYTuple.ts similarity index 100% rename from src/core/blitz/correctZYTuple.ts rename to packages/website/src/core/blitz/correctZYTuple.ts diff --git a/src/core/blitz/extractArmor.ts b/packages/website/src/core/blitz/extractArmor.ts similarity index 100% rename from src/core/blitz/extractArmor.ts rename to packages/website/src/core/blitz/extractArmor.ts diff --git a/src/core/blitz/extractModel/constants.ts b/packages/website/src/core/blitz/extractModel/constants.ts similarity index 100% rename from src/core/blitz/extractModel/constants.ts rename to packages/website/src/core/blitz/extractModel/constants.ts diff --git a/src/core/blitz/extractModel/index.ts b/packages/website/src/core/blitz/extractModel/index.ts similarity index 100% rename from src/core/blitz/extractModel/index.ts rename to packages/website/src/core/blitz/extractModel/index.ts diff --git a/src/core/blitz/fetchBlitz.ts b/packages/website/src/core/blitz/fetchBlitz.ts similarity index 97% rename from src/core/blitz/fetchBlitz.ts rename to packages/website/src/core/blitz/fetchBlitz.ts index c9acb951d..e635c2ce2 100644 --- a/src/core/blitz/fetchBlitz.ts +++ b/packages/website/src/core/blitz/fetchBlitz.ts @@ -1,6 +1,6 @@ import { assertSecret } from '@blitzkit/core'; +import { EventManager } from '@blitzkit/core/src/blitzkit/eventManager'; import { Region } from '../../constants/regions'; -import { EventManager } from '../blitzkit/eventManager'; import { patientFetch } from '../blitzkit/patientFetch'; const RETRY_ERRORS = ['REQUEST_LIMIT_EXCEEDED', 'SOURCE_NOT_AVAILABLE']; diff --git a/src/core/blitz/generateStats.ts b/packages/website/src/core/blitz/generateStats.ts similarity index 100% rename from src/core/blitz/generateStats.ts rename to packages/website/src/core/blitz/generateStats.ts diff --git a/src/core/blitz/getAccountAchievements.ts b/packages/website/src/core/blitz/getAccountAchievements.ts similarity index 100% rename from src/core/blitz/getAccountAchievements.ts rename to packages/website/src/core/blitz/getAccountAchievements.ts diff --git a/src/core/blitz/getAccountInfo.ts b/packages/website/src/core/blitz/getAccountInfo.ts similarity index 100% rename from src/core/blitz/getAccountInfo.ts rename to packages/website/src/core/blitz/getAccountInfo.ts diff --git a/src/core/blitz/getClanAccountInfo.ts b/packages/website/src/core/blitz/getClanAccountInfo.ts similarity index 100% rename from src/core/blitz/getClanAccountInfo.ts rename to packages/website/src/core/blitz/getClanAccountInfo.ts diff --git a/src/core/blitz/getClanInfo.ts b/packages/website/src/core/blitz/getClanInfo.ts similarity index 100% rename from src/core/blitz/getClanInfo.ts rename to packages/website/src/core/blitz/getClanInfo.ts diff --git a/src/core/blitz/getLeagueFromScore.ts b/packages/website/src/core/blitz/getLeagueFromScore.ts similarity index 100% rename from src/core/blitz/getLeagueFromScore.ts rename to packages/website/src/core/blitz/getLeagueFromScore.ts diff --git a/src/core/blitz/getRatingInfo.ts b/packages/website/src/core/blitz/getRatingInfo.ts similarity index 100% rename from src/core/blitz/getRatingInfo.ts rename to packages/website/src/core/blitz/getRatingInfo.ts diff --git a/src/core/blitz/getRatingLeague.ts b/packages/website/src/core/blitz/getRatingLeague.ts similarity index 100% rename from src/core/blitz/getRatingLeague.ts rename to packages/website/src/core/blitz/getRatingLeague.ts diff --git a/src/core/blitz/getRatingNeighbors.ts b/packages/website/src/core/blitz/getRatingNeighbors.ts similarity index 100% rename from src/core/blitz/getRatingNeighbors.ts rename to packages/website/src/core/blitz/getRatingNeighbors.ts diff --git a/src/core/blitz/getTankStats.ts b/packages/website/src/core/blitz/getTankStats.ts similarity index 100% rename from src/core/blitz/getTankStats.ts rename to packages/website/src/core/blitz/getTankStats.ts diff --git a/src/core/blitz/isOnGoingRatingSeason.ts b/packages/website/src/core/blitz/isOnGoingRatingSeason.ts similarity index 100% rename from src/core/blitz/isOnGoingRatingSeason.ts rename to packages/website/src/core/blitz/isOnGoingRatingSeason.ts diff --git a/src/core/blitz/isValidBlitzId.ts b/packages/website/src/core/blitz/isValidBlitzId.ts similarity index 100% rename from src/core/blitz/isValidBlitzId.ts rename to packages/website/src/core/blitz/isValidBlitzId.ts diff --git a/src/core/blitz/normalizeExtra.ts b/packages/website/src/core/blitz/normalizeExtra.ts similarity index 100% rename from src/core/blitz/normalizeExtra.ts rename to packages/website/src/core/blitz/normalizeExtra.ts diff --git a/src/core/blitz/normalizeIds.ts b/packages/website/src/core/blitz/normalizeIds.ts similarity index 100% rename from src/core/blitz/normalizeIds.ts rename to packages/website/src/core/blitz/normalizeIds.ts diff --git a/src/core/blitz/normalizeLeagueIcon.ts b/packages/website/src/core/blitz/normalizeLeagueIcon.ts similarity index 100% rename from src/core/blitz/normalizeLeagueIcon.ts rename to packages/website/src/core/blitz/normalizeLeagueIcon.ts diff --git a/src/core/blitz/readBase64DVPL.ts b/packages/website/src/core/blitz/readBase64DVPL.ts similarity index 100% rename from src/core/blitz/readBase64DVPL.ts rename to packages/website/src/core/blitz/readBase64DVPL.ts diff --git a/src/core/blitz/readDVPL.ts b/packages/website/src/core/blitz/readDVPL.ts similarity index 100% rename from src/core/blitz/readDVPL.ts rename to packages/website/src/core/blitz/readDVPL.ts diff --git a/src/core/blitz/readDVPLFile.ts b/packages/website/src/core/blitz/readDVPLFile.ts similarity index 100% rename from src/core/blitz/readDVPLFile.ts rename to packages/website/src/core/blitz/readDVPLFile.ts diff --git a/src/core/blitz/readStringDVPL.ts b/packages/website/src/core/blitz/readStringDVPL.ts similarity index 100% rename from src/core/blitz/readStringDVPL.ts rename to packages/website/src/core/blitz/readStringDVPL.ts diff --git a/src/core/blitz/readXMLDVPL.ts b/packages/website/src/core/blitz/readXMLDVPL.ts similarity index 100% rename from src/core/blitz/readXMLDVPL.ts rename to packages/website/src/core/blitz/readXMLDVPL.ts diff --git a/src/core/blitz/readYAML.ts b/packages/website/src/core/blitz/readYAML.ts similarity index 100% rename from src/core/blitz/readYAML.ts rename to packages/website/src/core/blitz/readYAML.ts diff --git a/src/core/blitz/readYAMLDVPL.ts b/packages/website/src/core/blitz/readYAMLDVPL.ts similarity index 100% rename from src/core/blitz/readYAMLDVPL.ts rename to packages/website/src/core/blitz/readYAMLDVPL.ts diff --git a/src/core/blitz/regionSubdomainToRegion.ts b/packages/website/src/core/blitz/regionSubdomainToRegion.ts similarity index 100% rename from src/core/blitz/regionSubdomainToRegion.ts rename to packages/website/src/core/blitz/regionSubdomainToRegion.ts diff --git a/src/core/blitz/regionToRegionSubdomain.ts b/packages/website/src/core/blitz/regionToRegionSubdomain.ts similarity index 100% rename from src/core/blitz/regionToRegionSubdomain.ts rename to packages/website/src/core/blitz/regionToRegionSubdomain.ts diff --git a/src/core/blitz/resolveTankId.ts b/packages/website/src/core/blitz/resolveTankId.ts similarity index 100% rename from src/core/blitz/resolveTankId.ts rename to packages/website/src/core/blitz/resolveTankId.ts diff --git a/src/core/blitz/rotateDavaVector.ts b/packages/website/src/core/blitz/rotateDavaVector.ts similarity index 72% rename from src/core/blitz/rotateDavaVector.ts rename to packages/website/src/core/blitz/rotateDavaVector.ts index f3e76e9bd..3cc8f7f02 100644 --- a/src/core/blitz/rotateDavaVector.ts +++ b/packages/website/src/core/blitz/rotateDavaVector.ts @@ -1,5 +1,5 @@ +import { I_HAT } from '@blitzkit/core/src/math/axis'; import { Vector3 } from 'three'; -import { I_HAT } from '../../constants/axis'; export function rotateDavaVector(vector: Vector3) { return vector.applyAxisAngle(I_HAT, Math.PI / 2); diff --git a/src/core/blitz/searchClansAcrossRegions.ts b/packages/website/src/core/blitz/searchClansAcrossRegions.ts similarity index 100% rename from src/core/blitz/searchClansAcrossRegions.ts rename to packages/website/src/core/blitz/searchClansAcrossRegions.ts diff --git a/src/core/blitz/searchCurrentRatingPlayers.ts b/packages/website/src/core/blitz/searchCurrentRatingPlayers.ts similarity index 100% rename from src/core/blitz/searchCurrentRatingPlayers.ts rename to packages/website/src/core/blitz/searchCurrentRatingPlayers.ts diff --git a/src/core/blitz/searchPlayersAcrossRegions/constants.ts b/packages/website/src/core/blitz/searchPlayersAcrossRegions/constants.ts similarity index 100% rename from src/core/blitz/searchPlayersAcrossRegions/constants.ts rename to packages/website/src/core/blitz/searchPlayersAcrossRegions/constants.ts diff --git a/src/core/blitz/searchPlayersAcrossRegions/index.ts b/packages/website/src/core/blitz/searchPlayersAcrossRegions/index.ts similarity index 100% rename from src/core/blitz/searchPlayersAcrossRegions/index.ts rename to packages/website/src/core/blitz/searchPlayersAcrossRegions/index.ts diff --git a/src/core/blitz/toUniqueId.ts b/packages/website/src/core/blitz/toUniqueId.ts similarity index 100% rename from src/core/blitz/toUniqueId.ts rename to packages/website/src/core/blitz/toUniqueId.ts diff --git a/src/core/blitz/unrotateDavaVector.ts b/packages/website/src/core/blitz/unrotateDavaVector.ts similarity index 72% rename from src/core/blitz/unrotateDavaVector.ts rename to packages/website/src/core/blitz/unrotateDavaVector.ts index a312cef3d..a7cd1d910 100644 --- a/src/core/blitz/unrotateDavaVector.ts +++ b/packages/website/src/core/blitz/unrotateDavaVector.ts @@ -1,5 +1,5 @@ +import { I_HAT } from '@blitzkit/core/src/math/axis'; import { Vector3 } from 'three'; -import { I_HAT } from '../../constants/axis'; export function unrotateDavaVector(vector: Vector3) { return vector.applyAxisAngle(I_HAT, -Math.PI / 2); diff --git a/src/core/blitz/writeDVPL.ts b/packages/website/src/core/blitz/writeDVPL.ts similarity index 100% rename from src/core/blitz/writeDVPL.ts rename to packages/website/src/core/blitz/writeDVPL.ts diff --git a/src/core/blitzkit/buildTechTreeLine.ts b/packages/website/src/core/blitzkit/buildTechTreeLine.ts similarity index 100% rename from src/core/blitzkit/buildTechTreeLine.ts rename to packages/website/src/core/blitzkit/buildTechTreeLine.ts diff --git a/src/core/blitzkit/commitAssets.ts b/packages/website/src/core/blitzkit/commitAssets.ts similarity index 100% rename from src/core/blitzkit/commitAssets.ts rename to packages/website/src/core/blitzkit/commitAssets.ts diff --git a/src/core/blitzkit/commitMultipleFiles.ts b/packages/website/src/core/blitzkit/commitMultipleFiles.ts similarity index 100% rename from src/core/blitzkit/commitMultipleFiles.ts rename to packages/website/src/core/blitzkit/commitMultipleFiles.ts diff --git a/src/core/blitzkit/context.ts b/packages/website/src/core/blitzkit/context.ts similarity index 100% rename from src/core/blitzkit/context.ts rename to packages/website/src/core/blitzkit/context.ts diff --git a/src/core/blitzkit/createBlob.ts b/packages/website/src/core/blitzkit/createBlob.ts similarity index 100% rename from src/core/blitzkit/createBlob.ts rename to packages/website/src/core/blitzkit/createBlob.ts diff --git a/src/core/blitzkit/degressiveStat.ts b/packages/website/src/core/blitzkit/degressiveStat.ts similarity index 100% rename from src/core/blitzkit/degressiveStat.ts rename to packages/website/src/core/blitzkit/degressiveStat.ts diff --git a/src/core/blitzkit/discoveredIdDefinitions.ts b/packages/website/src/core/blitzkit/discoveredIdDefinitions.ts similarity index 100% rename from src/core/blitzkit/discoveredIdDefinitions.ts rename to packages/website/src/core/blitzkit/discoveredIdDefinitions.ts diff --git a/src/core/blitzkit/emblemURL.ts b/packages/website/src/core/blitzkit/emblemURL.ts similarity index 100% rename from src/core/blitzkit/emblemURL.ts rename to packages/website/src/core/blitzkit/emblemURL.ts diff --git a/src/core/blitzkit/fetchPreDiscoveredIds.ts b/packages/website/src/core/blitzkit/fetchPreDiscoveredIds.ts similarity index 100% rename from src/core/blitzkit/fetchPreDiscoveredIds.ts rename to packages/website/src/core/blitzkit/fetchPreDiscoveredIds.ts diff --git a/src/core/blitzkit/filtersToDescription.ts b/packages/website/src/core/blitzkit/filtersToDescription.ts similarity index 100% rename from src/core/blitzkit/filtersToDescription.ts rename to packages/website/src/core/blitzkit/filtersToDescription.ts diff --git a/src/core/blitzkit/flagUserActivity.ts b/packages/website/src/core/blitzkit/flagUserActivity.ts similarity index 100% rename from src/core/blitzkit/flagUserActivity.ts rename to packages/website/src/core/blitzkit/flagUserActivity.ts diff --git a/src/core/blitzkit/getArchivedLatestSeasonNumber.ts b/packages/website/src/core/blitzkit/getArchivedLatestSeasonNumber.ts similarity index 100% rename from src/core/blitzkit/getArchivedLatestSeasonNumber.ts rename to packages/website/src/core/blitzkit/getArchivedLatestSeasonNumber.ts diff --git a/src/core/blitzkit/getArchivedRatingInfo.ts b/packages/website/src/core/blitzkit/getArchivedRatingInfo.ts similarity index 100% rename from src/core/blitzkit/getArchivedRatingInfo.ts rename to packages/website/src/core/blitzkit/getArchivedRatingInfo.ts diff --git a/src/core/blitzkit/getArchivedRatingLeaderboard.ts b/packages/website/src/core/blitzkit/getArchivedRatingLeaderboard.ts similarity index 100% rename from src/core/blitzkit/getArchivedRatingLeaderboard.ts rename to packages/website/src/core/blitzkit/getArchivedRatingLeaderboard.ts diff --git a/src/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts b/packages/website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts similarity index 100% rename from src/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts rename to packages/website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts diff --git a/src/core/blitzkit/getBlitzFromDiscord.ts b/packages/website/src/core/blitzkit/getBlitzFromDiscord.ts similarity index 100% rename from src/core/blitzkit/getBlitzFromDiscord.ts rename to packages/website/src/core/blitzkit/getBlitzFromDiscord.ts diff --git a/src/core/blitzkit/getPeriodNow.ts b/packages/website/src/core/blitzkit/getPeriodNow.ts similarity index 100% rename from src/core/blitzkit/getPeriodNow.ts rename to packages/website/src/core/blitzkit/getPeriodNow.ts diff --git a/src/core/blitzkit/getPeriodStart.ts b/packages/website/src/core/blitzkit/getPeriodStart.ts similarity index 100% rename from src/core/blitzkit/getPeriodStart.ts rename to packages/website/src/core/blitzkit/getPeriodStart.ts diff --git a/src/core/blitzkit/getTankHistories.ts b/packages/website/src/core/blitzkit/getTankHistories.ts similarity index 94% rename from src/core/blitzkit/getTankHistories.ts rename to packages/website/src/core/blitzkit/getTankHistories.ts index 1a281beec..9624d8319 100644 --- a/src/core/blitzkit/getTankHistories.ts +++ b/packages/website/src/core/blitzkit/getTankHistories.ts @@ -1,6 +1,5 @@ -import { Locale } from 'discord.js'; +import { emptyAllStats } from '@blitzkit/core/src/blitzstars/getStatsInPeriod/constants'; import { Region } from '../../constants/regions'; -import { UserError } from '../../hooks/userError'; import { GetHistoriesOptions, Histories, @@ -8,7 +7,6 @@ import { getHistoriesDefaultOptions, } from '../../types/histories'; import getTankStats from '../blitz/getTankStats'; -import { emptyAllStats } from '../blitzstars/getStatsInPeriod/constants'; import { translator } from '../localization/translator'; export interface TankHistory extends History { @@ -53,7 +51,7 @@ export default async function getTankHistories( all: history.all, last_battle_time: history.last_battle_time, tank_id: history.tank_id, - }) satisfies TankHistory, + } satisfies TankHistory), ); const compliantTanks: number[] = []; const lastBattles: Record = {}; diff --git a/src/core/blitzkit/getTimeDaysAgo.ts b/packages/website/src/core/blitzkit/getTimeDaysAgo.ts similarity index 100% rename from src/core/blitzkit/getTimeDaysAgo.ts rename to packages/website/src/core/blitzkit/getTimeDaysAgo.ts diff --git a/src/core/blitzkit/hasEquipment.ts b/packages/website/src/core/blitzkit/hasEquipment.ts similarity index 87% rename from src/core/blitzkit/hasEquipment.ts rename to packages/website/src/core/blitzkit/hasEquipment.ts index 75ca3f0ff..6177456d9 100644 --- a/src/core/blitzkit/hasEquipment.ts +++ b/packages/website/src/core/blitzkit/hasEquipment.ts @@ -1,5 +1,5 @@ +import { equipmentDefinitions } from '@blitzkit/core/src/blitzkit/equipmentDefinitions'; import { EquipmentMatrix } from '../../../packages/website/src/stores/duel'; -import { equipmentDefinitions } from './equipmentDefinitions'; export async function hasEquipment( id: number, diff --git a/src/core/blitzkit/iconPng.ts b/packages/website/src/core/blitzkit/iconPng.ts similarity index 100% rename from src/core/blitzkit/iconPng.ts rename to packages/website/src/core/blitzkit/iconPng.ts diff --git a/src/core/blitzkit/isLocalhost.ts b/packages/website/src/core/blitzkit/isLocalhost.ts similarity index 100% rename from src/core/blitzkit/isLocalhost.ts rename to packages/website/src/core/blitzkit/isLocalhost.ts diff --git a/src/core/blitzkit/jsxToPng.ts b/packages/website/src/core/blitzkit/jsxToPng.ts similarity index 100% rename from src/core/blitzkit/jsxToPng.ts rename to packages/website/src/core/blitzkit/jsxToPng.ts diff --git a/src/core/blitzkit/jsxToPngThreaded.ts b/packages/website/src/core/blitzkit/jsxToPngThreaded.ts similarity index 100% rename from src/core/blitzkit/jsxToPngThreaded.ts rename to packages/website/src/core/blitzkit/jsxToPngThreaded.ts diff --git a/src/core/blitzkit/jsxToSvg/Roboto-Black.ttf b/packages/website/src/core/blitzkit/jsxToSvg/Roboto-Black.ttf similarity index 100% rename from src/core/blitzkit/jsxToSvg/Roboto-Black.ttf rename to packages/website/src/core/blitzkit/jsxToSvg/Roboto-Black.ttf diff --git a/src/core/blitzkit/jsxToSvg/Roboto-Bold.ttf b/packages/website/src/core/blitzkit/jsxToSvg/Roboto-Bold.ttf similarity index 100% rename from src/core/blitzkit/jsxToSvg/Roboto-Bold.ttf rename to packages/website/src/core/blitzkit/jsxToSvg/Roboto-Bold.ttf diff --git a/src/core/blitzkit/jsxToSvg/Roboto.ttf b/packages/website/src/core/blitzkit/jsxToSvg/Roboto.ttf similarity index 100% rename from src/core/blitzkit/jsxToSvg/Roboto.ttf rename to packages/website/src/core/blitzkit/jsxToSvg/Roboto.ttf diff --git a/src/core/blitzkit/jsxToSvg/index.ts b/packages/website/src/core/blitzkit/jsxToSvg/index.ts similarity index 100% rename from src/core/blitzkit/jsxToSvg/index.ts rename to packages/website/src/core/blitzkit/jsxToSvg/index.ts diff --git a/src/core/blitzkit/jsxTree.tsx b/packages/website/src/core/blitzkit/jsxTree.tsx similarity index 100% rename from src/core/blitzkit/jsxTree.tsx rename to packages/website/src/core/blitzkit/jsxTree.tsx diff --git a/src/core/blitzkit/linkBlitzAndDiscord.ts b/packages/website/src/core/blitzkit/linkBlitzAndDiscord.ts similarity index 100% rename from src/core/blitzkit/linkBlitzAndDiscord.ts rename to packages/website/src/core/blitzkit/linkBlitzAndDiscord.ts diff --git a/src/core/blitzkit/mapDefinitions.ts b/packages/website/src/core/blitzkit/mapDefinitions.ts similarity index 100% rename from src/core/blitzkit/mapDefinitions.ts rename to packages/website/src/core/blitzkit/mapDefinitions.ts diff --git a/src/core/blitzkit/modelTransform.ts b/packages/website/src/core/blitzkit/modelTransform.ts similarity index 77% rename from src/core/blitzkit/modelTransform.ts rename to packages/website/src/core/blitzkit/modelTransform.ts index 3908802cb..d430d41f7 100644 --- a/src/core/blitzkit/modelTransform.ts +++ b/packages/website/src/core/blitzkit/modelTransform.ts @@ -1,5 +1,5 @@ +import { EventManager } from '@blitzkit/core/src/blitzkit/eventManager'; import { invalidate } from '@react-three/fiber'; -import { EventManager } from './eventManager'; export interface ModelTransformEventData { yaw?: number; diff --git a/src/core/blitzkit/nameToArmorId.ts b/packages/website/src/core/blitzkit/nameToArmorId.ts similarity index 100% rename from src/core/blitzkit/nameToArmorId.ts rename to packages/website/src/core/blitzkit/nameToArmorId.ts diff --git a/src/core/blitzkit/normalizeBoundingBox.ts b/packages/website/src/core/blitzkit/normalizeBoundingBox.ts similarity index 100% rename from src/core/blitzkit/normalizeBoundingBox.ts rename to packages/website/src/core/blitzkit/normalizeBoundingBox.ts diff --git a/src/core/blitzkit/octokit.ts b/packages/website/src/core/blitzkit/octokit.ts similarity index 100% rename from src/core/blitzkit/octokit.ts rename to packages/website/src/core/blitzkit/octokit.ts diff --git a/src/core/blitzkit/parseBkni.ts b/packages/website/src/core/blitzkit/parseBkni.ts similarity index 100% rename from src/core/blitzkit/parseBkni.ts rename to packages/website/src/core/blitzkit/parseBkni.ts diff --git a/src/core/blitzkit/patientFetch.ts b/packages/website/src/core/blitzkit/patientFetch.ts similarity index 100% rename from src/core/blitzkit/patientFetch.ts rename to packages/website/src/core/blitzkit/patientFetch.ts diff --git a/src/core/blitzkit/patientFetchJSON.ts b/packages/website/src/core/blitzkit/patientFetchJSON.ts similarity index 100% rename from src/core/blitzkit/patientFetchJSON.ts rename to packages/website/src/core/blitzkit/patientFetchJSON.ts diff --git a/src/core/blitzkit/processes.ts b/packages/website/src/core/blitzkit/processes.ts similarity index 100% rename from src/core/blitzkit/processes.ts rename to packages/website/src/core/blitzkit/processes.ts diff --git a/src/core/blitzkit/progressiveStat.ts b/packages/website/src/core/blitzkit/progressiveStat.ts similarity index 100% rename from src/core/blitzkit/progressiveStat.ts rename to packages/website/src/core/blitzkit/progressiveStat.ts diff --git a/src/core/blitzkit/pushTankopediaPath.ts b/packages/website/src/core/blitzkit/pushTankopediaPath.ts similarity index 100% rename from src/core/blitzkit/pushTankopediaPath.ts rename to packages/website/src/core/blitzkit/pushTankopediaPath.ts diff --git a/src/core/blitzkit/readTexture/constants.ts b/packages/website/src/core/blitzkit/readTexture/constants.ts similarity index 100% rename from src/core/blitzkit/readTexture/constants.ts rename to packages/website/src/core/blitzkit/readTexture/constants.ts diff --git a/src/core/blitzkit/readTexture/index.ts b/packages/website/src/core/blitzkit/readTexture/index.ts similarity index 100% rename from src/core/blitzkit/readTexture/index.ts rename to packages/website/src/core/blitzkit/readTexture/index.ts diff --git a/src/core/blitzkit/renderConfiguration.ts b/packages/website/src/core/blitzkit/renderConfiguration.ts similarity index 100% rename from src/core/blitzkit/renderConfiguration.ts rename to packages/website/src/core/blitzkit/renderConfiguration.ts diff --git a/src/core/blitzkit/resolveAncestry.ts b/packages/website/src/core/blitzkit/resolveAncestry.ts similarity index 100% rename from src/core/blitzkit/resolveAncestry.ts rename to packages/website/src/core/blitzkit/resolveAncestry.ts diff --git a/src/core/blitzkit/resolveArmorIndex.ts b/packages/website/src/core/blitzkit/resolveArmorIndex.ts similarity index 100% rename from src/core/blitzkit/resolveArmorIndex.ts rename to packages/website/src/core/blitzkit/resolveArmorIndex.ts diff --git a/src/core/blitzkit/resolveDpm.ts b/packages/website/src/core/blitzkit/resolveDpm.ts similarity index 100% rename from src/core/blitzkit/resolveDpm.ts rename to packages/website/src/core/blitzkit/resolveDpm.ts diff --git a/src/core/blitzkit/resolveReload.ts b/packages/website/src/core/blitzkit/resolveReload.ts similarity index 100% rename from src/core/blitzkit/resolveReload.ts rename to packages/website/src/core/blitzkit/resolveReload.ts diff --git a/src/core/blitzkit/resolveThickness.ts b/packages/website/src/core/blitzkit/resolveThickness.ts similarity index 100% rename from src/core/blitzkit/resolveThickness.ts rename to packages/website/src/core/blitzkit/resolveThickness.ts diff --git a/src/core/blitzkit/svgToPng.ts b/packages/website/src/core/blitzkit/svgToPng.ts similarity index 100% rename from src/core/blitzkit/svgToPng.ts rename to packages/website/src/core/blitzkit/svgToPng.ts diff --git a/src/core/blitzkit/svgToPngThreaded.ts b/packages/website/src/core/blitzkit/svgToPngThreaded.ts similarity index 100% rename from src/core/blitzkit/svgToPngThreaded.ts rename to packages/website/src/core/blitzkit/svgToPngThreaded.ts diff --git a/src/core/blitzkit/tankIconPng.ts b/packages/website/src/core/blitzkit/tankIconPng.ts similarity index 100% rename from src/core/blitzkit/tankIconPng.ts rename to packages/website/src/core/blitzkit/tankIconPng.ts diff --git a/src/core/blitzkit/tankToCompareMember.ts b/packages/website/src/core/blitzkit/tankToCompareMember.ts similarity index 83% rename from src/core/blitzkit/tankToCompareMember.ts rename to packages/website/src/core/blitzkit/tankToCompareMember.ts index d350c6d4e..663eecc73 100644 --- a/src/core/blitzkit/tankToCompareMember.ts +++ b/packages/website/src/core/blitzkit/tankToCompareMember.ts @@ -1,6 +1,6 @@ +import { ProvisionDefinitions } from '@blitzkit/core/src/blitzkit/provisionDefinitions'; import { uniqueId } from 'lodash'; import { CompareMember } from '../../../packages/website/src/stores/compareEphemeral'; -import { ProvisionDefinitions } from './provisionDefinitions'; import { TankDefinition } from './tankDefinitions'; import { tankToDuelMember } from './tankToDuelMember'; diff --git a/src/core/blitzkit/tankToDuelMember.ts b/packages/website/src/core/blitzkit/tankToDuelMember.ts similarity index 76% rename from src/core/blitzkit/tankToDuelMember.ts rename to packages/website/src/core/blitzkit/tankToDuelMember.ts index ac20e306f..b5587f0d8 100644 --- a/src/core/blitzkit/tankToDuelMember.ts +++ b/packages/website/src/core/blitzkit/tankToDuelMember.ts @@ -1,8 +1,8 @@ -import { DuelMember } from '../../../packages/website/src/stores/duel'; -import { genericDefaultEquipmentMatrix } from '../../../packages/website/src/stores/duel/constants'; -import { availableProvisions } from './availableProvisions'; -import { ProvisionDefinitions } from './provisionDefinitions'; -import { TankDefinition } from './tankDefinitions'; +import { TankDefinition } from '@blitzkit/core'; +import { availableProvisions } from '@blitzkit/core/src/blitzkit/availableProvisions'; +import { ProvisionDefinitions } from '@blitzkit/core/src/blitzkit/provisionDefinitions'; +import { DuelMember } from '../../stores/duel'; +import { genericDefaultEquipmentMatrix } from '../../stores/duel/constants'; const PROVISION_PREFERENCES = [ 19, // improved fuel diff --git a/src/core/blitzkit/unionBoundingBox.ts b/packages/website/src/core/blitzkit/unionBoundingBox.ts similarity index 100% rename from src/core/blitzkit/unionBoundingBox.ts rename to packages/website/src/core/blitzkit/unionBoundingBox.ts diff --git a/src/core/blitzkit/unwrapBlitzkitResponse.ts b/packages/website/src/core/blitzkit/unwrapBlitzkitResponse.ts similarity index 100% rename from src/core/blitzkit/unwrapBlitzkitResponse.ts rename to packages/website/src/core/blitzkit/unwrapBlitzkitResponse.ts diff --git a/src/core/blitzkit/withCORSProxy.ts b/packages/website/src/core/blitzkit/withCORSProxy.ts similarity index 100% rename from src/core/blitzkit/withCORSProxy.ts rename to packages/website/src/core/blitzkit/withCORSProxy.ts diff --git a/src/core/blitzstars/getBlitzStarsLinkButton.ts b/packages/website/src/core/blitzstars/getBlitzStarsLinkButton.ts similarity index 100% rename from src/core/blitzstars/getBlitzStarsLinkButton.ts rename to packages/website/src/core/blitzstars/getBlitzStarsLinkButton.ts diff --git a/src/core/blitzstars/getPlayerHistories.ts b/packages/website/src/core/blitzstars/getPlayerHistories.ts similarity index 93% rename from src/core/blitzstars/getPlayerHistories.ts rename to packages/website/src/core/blitzstars/getPlayerHistories.ts index 5d876ebd0..c34834c53 100644 --- a/src/core/blitzstars/getPlayerHistories.ts +++ b/packages/website/src/core/blitzstars/getPlayerHistories.ts @@ -1,3 +1,4 @@ +import { emptyAllStats } from '@blitzkit/core/src/blitzstars/getStatsInPeriod/constants'; import { Region } from '../../constants/regions'; import { GetHistoriesOptions, @@ -7,7 +8,6 @@ import { } from '../../types/histories'; import { getAccountInfo } from '../blitz/getAccountInfo'; import { PlayerStats } from './getPlayerStats'; -import { emptyAllStats } from './getStatsInPeriod/constants'; export default async function getPlayerHistories( server: Region, @@ -23,7 +23,7 @@ export default async function getPlayerHistories( ({ all: history.statistics.all, last_battle_time: history.last_battle_time, - }) satisfies History, + } satisfies History), ); let lastNonCompliantIndex = -1; let hasCompliedOnce = false; diff --git a/src/core/blitzstars/getPlayerStats.ts b/packages/website/src/core/blitzstars/getPlayerStats.ts similarity index 100% rename from src/core/blitzstars/getPlayerStats.ts rename to packages/website/src/core/blitzstars/getPlayerStats.ts diff --git a/src/core/blitzstars/tankAverages.ts b/packages/website/src/core/blitzstars/tankAverages.ts similarity index 100% rename from src/core/blitzstars/tankAverages.ts rename to packages/website/src/core/blitzstars/tankAverages.ts diff --git a/src/core/discord/addClanChoices.ts b/packages/website/src/core/discord/addClanChoices.ts similarity index 100% rename from src/core/discord/addClanChoices.ts rename to packages/website/src/core/discord/addClanChoices.ts diff --git a/src/core/discord/addFilterOptions.ts b/packages/website/src/core/discord/addFilterOptions.ts similarity index 100% rename from src/core/discord/addFilterOptions.ts rename to packages/website/src/core/discord/addFilterOptions.ts diff --git a/src/core/discord/addPeriodSubCommands.ts b/packages/website/src/core/discord/addPeriodSubCommands.ts similarity index 100% rename from src/core/discord/addPeriodSubCommands.ts rename to packages/website/src/core/discord/addPeriodSubCommands.ts diff --git a/src/core/discord/addPeriodicFilterOptions.ts b/packages/website/src/core/discord/addPeriodicFilterOptions.ts similarity index 100% rename from src/core/discord/addPeriodicFilterOptions.ts rename to packages/website/src/core/discord/addPeriodicFilterOptions.ts diff --git a/src/core/discord/addRegionChoices.ts b/packages/website/src/core/discord/addRegionChoices.ts similarity index 100% rename from src/core/discord/addRegionChoices.ts rename to packages/website/src/core/discord/addRegionChoices.ts diff --git a/src/core/discord/addTankChoices.ts b/packages/website/src/core/discord/addTankChoices.ts similarity index 100% rename from src/core/discord/addTankChoices.ts rename to packages/website/src/core/discord/addTankChoices.ts diff --git a/src/core/discord/addTierChoices.ts b/packages/website/src/core/discord/addTierChoices.ts similarity index 89% rename from src/core/discord/addTierChoices.ts rename to packages/website/src/core/discord/addTierChoices.ts index 15de98aa6..b3029115e 100644 --- a/src/core/discord/addTierChoices.ts +++ b/packages/website/src/core/discord/addTierChoices.ts @@ -1,3 +1,4 @@ +import numberToRomanNumeral from '@blitzkit/core/src/math/numberToRomanNumeral'; import { APIApplicationCommandOptionChoice, Locale, @@ -5,7 +6,6 @@ import { } from 'discord.js'; import { range } from 'lodash'; import { translator } from '../localization/translator'; -import numberToRomanNumeral from '../math/numberToRomanNumeral'; import { localizationObject } from './localizationObject'; export default function addTierChoices(option: SlashCommandStringOption) { @@ -31,7 +31,7 @@ export default function addTierChoices(option: SlashCommandStringOption) { 'bot.common.options.tier.choices.tier', [`${tier}`, numberToRomanNumeral(tier)], ), - }) satisfies APIApplicationCommandOptionChoice, + } satisfies APIApplicationCommandOptionChoice), ), ) .setRequired(true); diff --git a/src/core/discord/addUsernameChoices.ts b/packages/website/src/core/discord/addUsernameChoices.ts similarity index 100% rename from src/core/discord/addUsernameChoices.ts rename to packages/website/src/core/discord/addUsernameChoices.ts diff --git a/src/core/discord/autocompleteClan/constants.ts b/packages/website/src/core/discord/autocompleteClan/constants.ts similarity index 100% rename from src/core/discord/autocompleteClan/constants.ts rename to packages/website/src/core/discord/autocompleteClan/constants.ts diff --git a/src/core/discord/autocompleteClan/index.ts b/packages/website/src/core/discord/autocompleteClan/index.ts similarity index 100% rename from src/core/discord/autocompleteClan/index.ts rename to packages/website/src/core/discord/autocompleteClan/index.ts diff --git a/src/core/discord/autocompleteTanks.ts b/packages/website/src/core/discord/autocompleteTanks.ts similarity index 100% rename from src/core/discord/autocompleteTanks.ts rename to packages/website/src/core/discord/autocompleteTanks.ts diff --git a/src/core/discord/autocompleteUsername.ts b/packages/website/src/core/discord/autocompleteUsername.ts similarity index 100% rename from src/core/discord/autocompleteUsername.ts rename to packages/website/src/core/discord/autocompleteUsername.ts diff --git a/src/core/discord/buttonLink.ts b/packages/website/src/core/discord/buttonLink.ts similarity index 100% rename from src/core/discord/buttonLink.ts rename to packages/website/src/core/discord/buttonLink.ts diff --git a/src/core/discord/buttonPrimary.ts b/packages/website/src/core/discord/buttonPrimary.ts similarity index 100% rename from src/core/discord/buttonPrimary.ts rename to packages/website/src/core/discord/buttonPrimary.ts diff --git a/src/core/discord/buttonRefresh.ts b/packages/website/src/core/discord/buttonRefresh.ts similarity index 100% rename from src/core/discord/buttonRefresh.ts rename to packages/website/src/core/discord/buttonRefresh.ts diff --git a/src/core/discord/client.ts b/packages/website/src/core/discord/client.ts similarity index 100% rename from src/core/discord/client.ts rename to packages/website/src/core/discord/client.ts diff --git a/src/core/discord/commandToURL.ts b/packages/website/src/core/discord/commandToURL.ts similarity index 100% rename from src/core/discord/commandToURL.ts rename to packages/website/src/core/discord/commandToURL.ts diff --git a/src/core/discord/createLocalizedCommand.ts b/packages/website/src/core/discord/createLocalizedCommand.ts similarity index 100% rename from src/core/discord/createLocalizedCommand.ts rename to packages/website/src/core/discord/createLocalizedCommand.ts diff --git a/src/core/discord/embedInfo.ts b/packages/website/src/core/discord/embedInfo.ts similarity index 100% rename from src/core/discord/embedInfo.ts rename to packages/website/src/core/discord/embedInfo.ts diff --git a/src/core/discord/embedNegative.ts b/packages/website/src/core/discord/embedNegative.ts similarity index 100% rename from src/core/discord/embedNegative.ts rename to packages/website/src/core/discord/embedNegative.ts diff --git a/src/core/discord/embedPositive.ts b/packages/website/src/core/discord/embedPositive.ts similarity index 100% rename from src/core/discord/embedPositive.ts rename to packages/website/src/core/discord/embedPositive.ts diff --git a/src/core/discord/embedWarning.ts b/packages/website/src/core/discord/embedWarning.ts similarity index 100% rename from src/core/discord/embedWarning.ts rename to packages/website/src/core/discord/embedWarning.ts diff --git a/src/core/discord/getCustomPeriodParams.ts b/packages/website/src/core/discord/getCustomPeriodParams.ts similarity index 100% rename from src/core/discord/getCustomPeriodParams.ts rename to packages/website/src/core/discord/getCustomPeriodParams.ts diff --git a/src/core/discord/getFiltersFromButton.ts b/packages/website/src/core/discord/getFiltersFromButton.ts similarity index 100% rename from src/core/discord/getFiltersFromButton.ts rename to packages/website/src/core/discord/getFiltersFromButton.ts diff --git a/src/core/discord/getFiltersFromCommand.ts b/packages/website/src/core/discord/getFiltersFromCommand.ts similarity index 100% rename from src/core/discord/getFiltersFromCommand.ts rename to packages/website/src/core/discord/getFiltersFromCommand.ts diff --git a/src/core/discord/getPeriodOptionName.ts b/packages/website/src/core/discord/getPeriodOptionName.ts similarity index 100% rename from src/core/discord/getPeriodOptionName.ts rename to packages/website/src/core/discord/getPeriodOptionName.ts diff --git a/src/core/discord/localizationObject.ts b/packages/website/src/core/discord/localizationObject.ts similarity index 100% rename from src/core/discord/localizationObject.ts rename to packages/website/src/core/discord/localizationObject.ts diff --git a/src/core/discord/manager.ts b/packages/website/src/core/discord/manager.ts similarity index 100% rename from src/core/discord/manager.ts rename to packages/website/src/core/discord/manager.ts diff --git a/src/core/discord/markdownTable.ts b/packages/website/src/core/discord/markdownTable.ts similarity index 100% rename from src/core/discord/markdownTable.ts rename to packages/website/src/core/discord/markdownTable.ts diff --git a/src/core/discord/normalizeInteractionReturnable.ts b/packages/website/src/core/discord/normalizeInteractionReturnable.ts similarity index 100% rename from src/core/discord/normalizeInteractionReturnable.ts rename to packages/website/src/core/discord/normalizeInteractionReturnable.ts diff --git a/src/core/discord/psa.ts b/packages/website/src/core/discord/psa.ts similarity index 100% rename from src/core/discord/psa.ts rename to packages/website/src/core/discord/psa.ts diff --git a/src/core/discord/resolveClanFromCommand.ts b/packages/website/src/core/discord/resolveClanFromCommand.ts similarity index 100% rename from src/core/discord/resolveClanFromCommand.ts rename to packages/website/src/core/discord/resolveClanFromCommand.ts diff --git a/src/core/discord/resolvePeriodFromButton.ts b/packages/website/src/core/discord/resolvePeriodFromButton.ts similarity index 100% rename from src/core/discord/resolvePeriodFromButton.ts rename to packages/website/src/core/discord/resolvePeriodFromButton.ts diff --git a/src/core/discord/resolvePeriodFromCommand.ts b/packages/website/src/core/discord/resolvePeriodFromCommand.ts similarity index 100% rename from src/core/discord/resolvePeriodFromCommand.ts rename to packages/website/src/core/discord/resolvePeriodFromCommand.ts diff --git a/src/core/discord/resolvePlayerFromButton.ts b/packages/website/src/core/discord/resolvePlayerFromButton.ts similarity index 100% rename from src/core/discord/resolvePlayerFromButton.ts rename to packages/website/src/core/discord/resolvePlayerFromButton.ts diff --git a/src/core/discord/resolvePlayerFromCommand/constants.ts b/packages/website/src/core/discord/resolvePlayerFromCommand/constants.ts similarity index 100% rename from src/core/discord/resolvePlayerFromCommand/constants.ts rename to packages/website/src/core/discord/resolvePlayerFromCommand/constants.ts diff --git a/src/core/discord/resolvePlayerFromCommand/index.ts b/packages/website/src/core/discord/resolvePlayerFromCommand/index.ts similarity index 100% rename from src/core/discord/resolvePlayerFromCommand/index.ts rename to packages/website/src/core/discord/resolvePlayerFromCommand/index.ts diff --git a/src/core/github/assetCommit.ts b/packages/website/src/core/github/assetCommit.ts similarity index 100% rename from src/core/github/assetCommit.ts rename to packages/website/src/core/github/assetCommit.ts diff --git a/src/core/localization/strings/constants.ts b/packages/website/src/core/localization/strings/constants.ts similarity index 68% rename from src/core/localization/strings/constants.ts rename to packages/website/src/core/localization/strings/constants.ts index d3e372cf3..5b849f363 100644 --- a/src/core/localization/strings/constants.ts +++ b/packages/website/src/core/localization/strings/constants.ts @@ -1,3 +1 @@ -import { Locale } from 'discord.js'; - export const SUPPORTED_LOCALES: Locale[] = [Locale.EnglishUS, Locale.SpanishES]; diff --git a/src/core/localization/strings/index.ts b/packages/website/src/core/localization/strings/index.ts similarity index 92% rename from src/core/localization/strings/index.ts rename to packages/website/src/core/localization/strings/index.ts index b2c679268..12d16255a 100644 --- a/src/core/localization/strings/index.ts +++ b/packages/website/src/core/localization/strings/index.ts @@ -1,4 +1,3 @@ -import { Locale } from 'discord.js'; import { SUPPORTED_LOCALES } from './constants'; export type TranslationFragmentTree = { diff --git a/src/core/localization/translator.ts b/packages/website/src/core/localization/translator.ts similarity index 100% rename from src/core/localization/translator.ts rename to packages/website/src/core/localization/translator.ts diff --git a/src/core/nivo/theme.ts b/packages/website/src/core/nivo/theme.ts similarity index 100% rename from src/core/nivo/theme.ts rename to packages/website/src/core/nivo/theme.ts diff --git a/src/core/three/discardClippingPlane.ts b/packages/website/src/core/three/discardClippingPlane.ts similarity index 100% rename from src/core/three/discardClippingPlane.ts rename to packages/website/src/core/three/discardClippingPlane.ts diff --git a/packages/website/src/hooks/useArmor.ts b/packages/website/src/hooks/useArmor.ts index 31bc8e6ba..e199a57ef 100644 --- a/packages/website/src/hooks/useArmor.ts +++ b/packages/website/src/hooks/useArmor.ts @@ -1,6 +1,5 @@ import { ObjectMap, useLoader } from '@react-three/fiber'; import { GLTF, GLTFLoader } from 'three-stdlib'; -import { asset } from '../core/blitzkit/asset'; const cache: Record< number, diff --git a/packages/website/src/hooks/useEquipment.ts b/packages/website/src/hooks/useEquipment.ts index 871dab509..c9cc931f5 100644 --- a/packages/website/src/hooks/useEquipment.ts +++ b/packages/website/src/hooks/useEquipment.ts @@ -1,6 +1,6 @@ +import { equipmentDefinitions } from '@blitzkit/core'; import { use, useMemo } from 'react'; -import * as Duel from '../../packages/website/src/stores/duel'; -import { equipmentDefinitions } from '../core/blitzkit/equipmentDefinitions'; +import * as Duel from '../stores/duel'; export function useEquipment(id: number, antagonist = false) { const awaitedEquipmentDefinitions = use(equipmentDefinitions); diff --git a/packages/website/src/hooks/useTankModelDefinition.ts b/packages/website/src/hooks/useTankModelDefinition.ts index 0c6102cf3..0da6613b7 100644 --- a/packages/website/src/hooks/useTankModelDefinition.ts +++ b/packages/website/src/hooks/useTankModelDefinition.ts @@ -1,6 +1,6 @@ 'use client'; -import * as TankopediaEphemeral from '../../packages/website/src/stores/tankopediaEphemeral'; +import * as TankopediaEphemeral from '../stores/tankopediaEphemeral'; export function useTankModelDefinition() { return TankopediaEphemeral.use((state) => state.model); diff --git a/packages/website/src/hooks/useTankTransform.ts b/packages/website/src/hooks/useTankTransform.ts index b86ec21c6..11a0897b9 100644 --- a/packages/website/src/hooks/useTankTransform.ts +++ b/packages/website/src/hooks/useTankTransform.ts @@ -1,13 +1,6 @@ import { RefObject, useEffect } from 'react'; import { Euler, Group, Vector3 } from 'three'; import { degToRad } from 'three/src/math/MathUtils'; -import { DuelMember } from '../../packages/website/src/stores/duel'; -import { I_HAT, J_HAT, K_HAT } from '../constants/axis'; -import { correctZYTuple } from '../core/blitz/correctZYTuple'; -import { - ModelTransformEventData, - modelTransformEvent, -} from '../core/blitzkit/modelTransform'; import { useTankModelDefinition } from './useTankModelDefinition'; export function useTankTransform( diff --git a/packages/website/src/stores/duel/index.ts b/packages/website/src/stores/duel/index.ts index 0e404081b..7dfb3cfb1 100644 --- a/packages/website/src/stores/duel/index.ts +++ b/packages/website/src/stores/duel/index.ts @@ -1,9 +1,5 @@ 'use client'; -import { createNextSafeStore } from '@blitzkit/core/src/zustand/createNextSafeStore'; -import { create } from 'zustand'; -import { subscribeWithSelector } from 'zustand/middleware'; -import { ProvisionDefinitions } from '../../../../../src/core/blitzkit/provisionDefinitions'; import { EngineDefinition, GunDefinition, @@ -11,8 +7,12 @@ import { TankDefinition, TrackDefinition, TurretDefinition, -} from '../../../../../src/core/blitzkit/tankDefinitions'; -import { tankToDuelMember } from '../../../../../src/core/blitzkit/tankToDuelMember'; +} from '@blitzkit/core'; +import { ProvisionDefinitions } from '@blitzkit/core/src/blitzkit/provisionDefinitions'; +import { createNextSafeStore } from '@blitzkit/core/src/zustand/createNextSafeStore'; +import { create } from 'zustand'; +import { subscribeWithSelector } from 'zustand/middleware'; +import { tankToDuelMember } from '../../core/blitzkit/tankToDuelMember'; type EquipmentMatrixItem = -1 | 0 | 1; type EquipmentMatrixRow = [ diff --git a/packages/website/src/stores/tankopediaEphemeral.ts b/packages/website/src/stores/tankopediaEphemeral.ts index 02de4153b..b7fb5bea4 100644 --- a/packages/website/src/stores/tankopediaEphemeral.ts +++ b/packages/website/src/stores/tankopediaEphemeral.ts @@ -1,13 +1,10 @@ 'use client'; +import { createNextSafeStore } from '@blitzkit/core'; import { Vector3 } from 'three'; import { create } from 'zustand'; import { subscribeWithSelector } from 'zustand/middleware'; import { XP_MULTIPLIERS } from '../app/tools/tankopedia/[id]/components/Model/TechTreeSection'; -import { ArmorType } from '../components/Armor/components/SpacedArmorScene'; -import { ExternalModuleVariant } from '../components/Armor/components/SpacedArmorSceneComponent'; -import { ModelDefinition } from '../core/blitzkit/modelDefinitions'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; interface TankopediaEphemeral { shot?: Shot; diff --git a/packages/website/tsconfig.json b/packages/website/tsconfig.json index 4f414a554..e2d911191 100644 --- a/packages/website/tsconfig.json +++ b/packages/website/tsconfig.json @@ -1,10 +1,6 @@ { "compilerOptions": { - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], + "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, "strict": false, @@ -26,9 +22,8 @@ "next-env.d.ts", "dist/website/types/**/*.ts", "**/*.ts", - "**/*.tsx" + "**/*.tsx", + "../core/src/blitz/permanentSkills.tsx" ], - "exclude": [ - "node_modules" - ] + "exclude": ["node_modules"] } diff --git a/src/types/glsl.d.ts b/packages/website/types/glsl.d.ts similarity index 100% rename from src/types/glsl.d.ts rename to packages/website/types/glsl.d.ts diff --git a/scripts/buildAssets/definitions.ts b/scripts/buildAssets/definitions.ts index 36086d049..93362aa0b 100644 --- a/scripts/buildAssets/definitions.ts +++ b/scripts/buildAssets/definitions.ts @@ -1,3 +1,4 @@ +import { SkillDefinitions } from '@blitzkit/core/src/blitzkit/skillDefinitions'; import { readdir } from 'fs/promises'; import { parse as parsePath } from 'path'; import { Vector3Tuple } from 'three'; @@ -30,7 +31,6 @@ import { ProvisionDefinitions, ProvisionEntry, } from '../../src/core/blitzkit/provisionDefinitions'; -import { SkillDefinitions } from '../../src/core/blitzkit/skillDefinitions'; import { superCompress } from '../../src/core/blitzkit/superCompress'; import { Crew, @@ -826,8 +826,8 @@ export async function definitions() { treeType: tankTags.includes('collectible') ? 'collector' : (typeof tank.price === 'number' ? false : 'gold' in tank.price) - ? 'premium' - : 'researchable', + ? 'premium' + : 'researchable', tier: tank.level as Tier, class: tankTags[0] as TankClass, testing: tankTags.includes('testTank'), @@ -1122,8 +1122,8 @@ export async function definitions() { gun.armor.gun === undefined ? 0 : typeof gun.armor.gun === 'number' - ? gun.armor.gun - : gun.armor.gun['#text'], + ? gun.armor.gun + : gun.armor.gun['#text'], pitch: { min: gunPitch[0], max: gunPitch[1], @@ -1173,7 +1173,7 @@ export async function definitions() { type: blitzShellKindToBlitzkit[shell.kind], explosionRadius: shell.kind === 'HIGH_EXPLOSIVE' - ? (shell.explosionRadius ?? 0) + ? shell.explosionRadius ?? 0 : undefined, icon: shell.icon, penetration: diff --git a/src/commands/breakdown/render.tsx b/src/commands/breakdown/render.tsx index 727ba5a06..3cde58f48 100644 --- a/src/commands/breakdown/render.tsx +++ b/src/commands/breakdown/render.tsx @@ -1,3 +1,4 @@ +import getStatsInPeriod from '@blitzkit/core/src/blitzstars/getStatsInPeriod'; import { Locale } from 'discord.js'; import { chunk } from 'lodash'; import * as Breakdown from '../../components/Breakdown'; @@ -12,7 +13,6 @@ import { TankDefinition, tankDefinitions, } from '../../core/blitzkit/tankDefinitions'; -import getStatsInPeriod from '../../core/blitzstars/getStatsInPeriod'; import { tankAverages } from '../../core/blitzstars/tankAverages'; import { ResolvedPeriod } from '../../core/discord/resolvePeriodFromCommand'; import { ResolvedPlayer } from '../../core/discord/resolvePlayerFromCommand'; diff --git a/src/commands/fullStats.tsx b/src/commands/fullStats.tsx index 0bb317aa5..c73fd759c 100644 --- a/src/commands/fullStats.tsx +++ b/src/commands/fullStats.tsx @@ -1,3 +1,4 @@ +import getStatsInPeriod from '@blitzkit/core/src/blitzstars/getStatsInPeriod'; import { Locale } from 'discord.js'; import CommandWrapper from '../components/CommandWrapper'; import GenericAllStats from '../components/GenericAllStats'; @@ -9,7 +10,6 @@ import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; import { emblemURL } from '../core/blitzkit/emblemURL'; import { filtersToDescription } from '../core/blitzkit/filtersToDescription'; import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton'; -import getStatsInPeriod from '../core/blitzstars/getStatsInPeriod'; import addPeriodicFilterOptions from '../core/discord/addPeriodicFilterOptions'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteTanks from '../core/discord/autocompleteTanks'; diff --git a/src/commands/stats.tsx b/src/commands/stats.tsx index 6ea70d8e4..68b883bf5 100644 --- a/src/commands/stats.tsx +++ b/src/commands/stats.tsx @@ -1,3 +1,4 @@ +import getStatsInPeriod from '@blitzkit/core/src/blitzstars/getStatsInPeriod'; import { Locale } from 'discord.js'; import AllStatsOverview from '../components/AllStatsOverview'; import CommandWrapper from '../components/CommandWrapper'; @@ -8,7 +9,6 @@ import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; import { emblemURL } from '../core/blitzkit/emblemURL'; import { filtersToDescription } from '../core/blitzkit/filtersToDescription'; import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton'; -import getStatsInPeriod from '../core/blitzstars/getStatsInPeriod'; import addPeriodicFilterOptions from '../core/discord/addPeriodicFilterOptions'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteTanks from '../core/discord/autocompleteTanks'; diff --git a/src/components/AllStatsOverview/index.tsx b/src/components/AllStatsOverview/index.tsx index 2763d434f..c1b4e86c5 100644 --- a/src/components/AllStatsOverview/index.tsx +++ b/src/components/AllStatsOverview/index.tsx @@ -1,5 +1,5 @@ +import { Percentile } from '@blitzkit/core/src/statistics/percentiles'; import { Locale } from 'discord.js'; -import { Percentile } from '../../constants/percentiles'; import { SupplementaryStats } from '../../core/blitz/getAccountInfo'; import { translator } from '../../core/localization/translator'; import getWN8Percentile from '../../core/statistics/getWN8Percentile'; diff --git a/src/components/Breakdown/components/Row.tsx b/src/components/Breakdown/components/Row.tsx index c3c6e2ad6..c0443dc7d 100644 --- a/src/components/Breakdown/components/Row.tsx +++ b/src/components/Breakdown/components/Row.tsx @@ -1,5 +1,5 @@ +import { Percentile } from '@blitzkit/core/src/statistics/percentiles'; import { createColors } from 'bepaint'; -import { Percentile } from '../../../constants/percentiles'; import { AccentColor, GrayColor, @@ -82,8 +82,8 @@ export function Row({ ? treeType === 'collector' ? theme.textLowContrast_blue : treeType === 'premium' - ? theme.textLowContrast_amber - : theme.textHighContrast + ? theme.textLowContrast_amber + : theme.textHighContrast : theme.textLowContrast, fontWeight: 900, fontSize: 16, diff --git a/src/components/Breakdown/components/RowStat.tsx b/src/components/Breakdown/components/RowStat.tsx index 7ba8935a9..628beefb5 100644 --- a/src/components/Breakdown/components/RowStat.tsx +++ b/src/components/Breakdown/components/RowStat.tsx @@ -1,5 +1,5 @@ +import { Percentile } from '@blitzkit/core/src/statistics/percentiles'; import { createColors } from 'bepaint'; -import { Percentile } from '../../../constants/percentiles'; import { AccentColor, GrayColor, diff --git a/src/components/GenericAllStats/components/Card.tsx b/src/components/GenericAllStats/components/Card.tsx index 26d9399d2..57b125535 100644 --- a/src/components/GenericAllStats/components/Card.tsx +++ b/src/components/GenericAllStats/components/Card.tsx @@ -1,4 +1,4 @@ -import { Percentile } from '../../../constants/percentiles'; +import { Percentile } from '@blitzkit/core/src/statistics/percentiles'; import { theme } from '../../../stitches.config'; import PercentileIndicator from '../../PercentileIndicator'; diff --git a/src/components/GenericAllStats/index.tsx b/src/components/GenericAllStats/index.tsx index fe495bb63..f9ab67bf6 100644 --- a/src/components/GenericAllStats/index.tsx +++ b/src/components/GenericAllStats/index.tsx @@ -1,7 +1,7 @@ +import isNumber from '@blitzkit/core/src/math/isNumber'; import { Locale } from 'discord.js'; import { SupplementaryStats } from '../../core/blitz/getAccountInfo'; import { translator } from '../../core/localization/translator'; -import isNumber from '../../core/math/isNumber'; import { BlitzStats } from '../../core/statistics/compositeStats/constants'; import getWN8Percentile from '../../core/statistics/getWN8Percentile'; import { Card } from './components/Card'; diff --git a/src/components/GenericStats/index.tsx b/src/components/GenericStats/index.tsx index 08a376db0..377cdde94 100644 --- a/src/components/GenericStats/index.tsx +++ b/src/components/GenericStats/index.tsx @@ -1,4 +1,4 @@ -import { Percentile } from '../../constants/percentiles'; +import { Percentile } from '@blitzkit/core/src/statistics/percentiles'; import GenericStatsColumn from './components/GenericStatsColumn'; export type GenericStat = diff --git a/src/components/PercentileIndicator/constants.ts b/src/components/PercentileIndicator/constants.ts index ae4fface8..f3e119859 100644 --- a/src/components/PercentileIndicator/constants.ts +++ b/src/components/PercentileIndicator/constants.ts @@ -1,3 +1,4 @@ +import { Percentile } from '@blitzkit/core/src/statistics/percentiles'; import { amber, blue, @@ -10,7 +11,6 @@ import { slate, teal, } from '@radix-ui/colors'; -import { Percentile } from '../../constants/percentiles'; export const PERCENTILE_COLORS = { [Percentile.VeryBad]: slate.slate9, diff --git a/src/components/PercentileIndicator/index.tsx b/src/components/PercentileIndicator/index.tsx index 2099966a3..d2a1f1a94 100644 --- a/src/components/PercentileIndicator/index.tsx +++ b/src/components/PercentileIndicator/index.tsx @@ -1,4 +1,4 @@ -import { Percentile } from '../../constants/percentiles'; +import { Percentile } from '@blitzkit/core/src/statistics/percentiles'; import { PERCENTILE_COLORS } from './constants'; interface PercentileIndicatorProps { diff --git a/src/core/blitzstars/getStatsInPeriod/constants.ts b/src/core/blitzstars/getStatsInPeriod/constants.ts deleted file mode 100644 index bee13b582..000000000 --- a/src/core/blitzstars/getStatsInPeriod/constants.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { BlitzStats } from '../../statistics/compositeStats/constants'; - -export const emptyAllStats: BlitzStats = { - battles: 0, - capture_points: 0, - damage_dealt: 0, - damage_received: 0, - dropped_capture_points: 0, - frags: 0, - frags8p: 0, - hits: 0, - losses: 0, - max_frags: 0, - max_xp: 0, - shots: 0, - spotted: 0, - survived_battles: 0, - xp: 0, - win_and_survived: 0, - wins: 0, -}; diff --git a/src/core/protobuf/decode.ts b/src/core/protobuf/decode.ts deleted file mode 100644 index e8cf5f9ef..000000000 --- a/src/core/protobuf/decode.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { lookup, ProtoSource } from './lookup'; - -export function decode( - source: ProtoSource, - type: string, - data: Uint8Array, -) { - return lookup(source, type).decode(data).toJSON() as Type; -} diff --git a/src/core/protobuf/encodeToBase64.ts b/src/core/protobuf/encodeToBase64.ts deleted file mode 100644 index b9a367e32..000000000 --- a/src/core/protobuf/encodeToBase64.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { encode } from './encode'; -import { ProtoSource } from './lookup'; - -export async function encodeToBase64( - source: ProtoSource, - type: string, - data: any, -) { - const array = encode(source, type, data); - return Buffer.from(array).toString('base64'); -} diff --git a/src/core/protobuf/lookup.ts b/src/core/protobuf/lookup.ts deleted file mode 100644 index 4d876836e..000000000 --- a/src/core/protobuf/lookup.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { parse } from 'protobufjs'; -import average_definitions from '../../../public/protos/average_definitions.proto'; -import reviews from '../../../public/protos/reviews.proto'; - -export type ProtoSource = keyof typeof protos; - -const protos = { reviews, average_definitions }; - -export function lookup(source: ProtoSource, type: string) { - return parse(protos[source]).root.lookupType(type); -} diff --git a/src/types/tanksStats.ts b/src/types/tanksStats.ts index 8e6be2059..053d4440a 100644 --- a/src/types/tanksStats.ts +++ b/src/types/tanksStats.ts @@ -1,4 +1,4 @@ -import { emptyAllStats } from '../core/blitzstars/getStatsInPeriod/constants'; +import { emptyAllStats } from '@blitzkit/core/src/blitzstars/getStatsInPeriod/constants'; import { BlitzStats } from '../core/statistics/compositeStats/constants'; export interface IndividualTankStats { diff --git a/tsconfig.json b/tsconfig.json index 3bfc1c040..2e222fed8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -47,7 +47,38 @@ "packages/core/src/blitzkit/modelDefinitions.ts", "packages/core/src/blitzkit/camouflageDefinitions.ts", "packages/core/src/blitzkit/filterTank.ts", - "packages/core/src/blitzkit/tankIcon.ts" + "packages/core/src/blitzkit/tankIcon.ts", + "packages/core/src/blitzkit/consumableDefinitions.ts", + "packages/core/src/blitzkit/eventManager.ts", + "packages/core/src/blitzkit/provisionDefinitions.ts", + "packages/core/src/radix/var.ts", + "packages/core/src/blitzkit/equipmentDefinitions.ts", + "packages/website/src/components/Armor", + "packages/website/types/glsl.d.ts", + "packages/core/src/blitzkit/uniqueGuns.ts", + "packages/core/src/blitzkit/averageDefinitions", + "packages/core/src/protobuf", + "packages/core/src/blitzstars/getStatsInPeriod", + "packages/core/src/statistics/percentiles.ts", + "packages/core/src/math", + "packages/website/src/components/EquipmentManager.tsx", + "packages/website/src/components/ModuleButtons", + "packages/core/src/blitzkit/availableProvisions.ts", + "packages/website/src/components/ProvisionsManager.tsx", + "packages/website/src/components/ModuleManager.tsx", + "packages/website/src/components/CrewSkillManager.tsx", + "packages/website/src/components/ConsumablesManager.tsx", + "packages/core/src/blitzkit/checkConsumableProvisionInclusivity.ts", + "packages/core/src/blitzkit/skillDefinitions.ts", + "packages/core/src/blitzkit/createDefaultSkills.ts", + "packages/core/src/blitzkit/tankCharacteristics.ts", + "packages/core/src/blitzkit/coefficient.ts", + "packages/core/src/blitzkit/sum.ts", + "packages/core/src/blitzkit/resolvePenetrationCoefficient.ts", + "packages/core/src/blitzkit/isExplosive.ts", + "packages/core/src/blitzkit/reviews.ts", + "packages/core/src/blitzkit/youtubers.ts", + "packages/core/src/blitzkit/modelTransform.ts" ], "exclude": ["node_modules/**/*", "dist", "scripts"] }