diff --git a/package.json b/package.json index 03c307e75..f7155b2df 100644 --- a/package.json +++ b/package.json @@ -4,16 +4,17 @@ "license": "BlitzKit License", "private": true, "scripts": { + "setup": "bun install && bun run build:protos && bun run build:proxyclient && bun run build:catalogitemaccesssor", + "dev": "bun run dev:website", + "dev:website": "cd packages/website-ue && bun run dev", "build:game": "cd packages/game && bun run build", "build:website": "cd packages/website-ue && bun run build", "build:proxyclient": "cd packages/scripts && bun run build:proxyclient", "build:catalogitemaccesssor": "cd packages/scripts && bun run build:catalogitemaccesssor", "build:protos": "cd packages/scripts && bun run build:protos", - "dev": "bun run dev:website", - "dev:website": "cd packages/website-ue && bun run dev", "lint": "tsc", "lint:website": "cd packages/website-ue && bun run lint", - "setup": "bun install && bun run build:protos && bun run build:proxyclient && bun run build:catalogitemaccesssor" + "download:protos": "cd packages/scripts && bun run download:protos" }, "type": "module", "workspaces": [ diff --git a/packages/closed b/packages/closed index 0999b4f39..d8bf9642b 160000 --- a/packages/closed +++ b/packages/closed @@ -1 +1 @@ -Subproject commit 0999b4f3946767107053fb0a09842ef5e7f8d540 +Subproject commit d8bf9642b086bdfbe1b00d0ca787598360057750 diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 3e3d830c1..48db2f6ab 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -46,9 +46,9 @@ "build:ratingleaderboard": "bun src/buildRatingLeaderboard.ts", "build:proxyclient": "bun src/buildProxyClient.ts", "build:catalogitemaccesssor": "bun src/buildCatalogItemAccessor.ts", - "prunestrings": "bun src/pruneStrings.ts", "build:protos": "bun src/protos.ts", - "patchnotes": "bun src/patchNotes.ts" + "patchnotes": "bun src/patchNotes.ts", + "download:protos": "bun src/downloadProtos.ts" }, "type": "module" } diff --git a/packages/scripts/src/buildCatalogItemAccessor.ts b/packages/scripts/src/buildCatalogItemAccessor.ts index 63b684365..aed6055e1 100644 --- a/packages/scripts/src/buildCatalogItemAccessor.ts +++ b/packages/scripts/src/buildCatalogItemAccessor.ts @@ -40,7 +40,7 @@ for (const file of files) { let content = ""; for (const _import of imports) { - content += `import { ${_import.name}Component } from "@protos/game/proto/legacy/${_import.file}";\n`; + content += `import { ${_import.name}Component } from "@protos/blitz/${_import.file}";\n`; } content += diff --git a/packages/scripts/src/buildProxyClient.ts b/packages/scripts/src/buildProxyClient.ts index 08649bacd..dbff22a1f 100644 --- a/packages/scripts/src/buildProxyClient.ts +++ b/packages/scripts/src/buildProxyClient.ts @@ -1,8 +1,8 @@ import { readFile, writeFile } from "fs/promises"; -const IMPORT = "@protos/game/proto/legacy/auto_legacy_proxy_client"; +const IMPORT = "@protos/blitz/auto_legacy_proxy_client"; const SOURCE = - "../../packages/closed/protos/game/proto/legacy/auto_legacy_proxy_client.proto"; + "../../packages/closed/protos/blitz/auto_legacy_proxy_client.proto"; const TARGET = "../../packages/closed/src/unreal/methodPopulatedProxyClient.ts"; const requestPattern = /^message (\w+)Request {/gm; diff --git a/packages/scripts/src/downloadProtos.ts b/packages/scripts/src/downloadProtos.ts new file mode 100644 index 000000000..24f7aa7a3 --- /dev/null +++ b/packages/scripts/src/downloadProtos.ts @@ -0,0 +1,12 @@ +import { ProxyClient } from "@blitzkit/closed"; +import { assertSecret } from "@blitzkit/core"; + +const proxyClient = await new ProxyClient( + assertSecret(import.meta.env.WOTB_SERVER), +).handshake(assertSecret(import.meta.env.WOTB_VERSION)); + +const hashes = await proxyClient.GetProtoHashes({}); + +console.log(hashes); + +proxyClient.close(); diff --git a/packages/scripts/src/protos.ts b/packages/scripts/src/protos.ts index 86a6352d4..e732e459d 100644 --- a/packages/scripts/src/protos.ts +++ b/packages/scripts/src/protos.ts @@ -6,7 +6,7 @@ const TS_PROTO_EXECUTABLE_LOCATIONS = [ "./node_modules/.bin/protoc-gen-ts_proto", "../../node_modules/.bin/protoc-gen-ts_proto", ]; -const ROOT = "../../packages/closed/protos"; +const ROOT = "../closed/protos"; let tsProtoExecutableLocation: string | undefined = undefined; @@ -28,11 +28,10 @@ if (!tsProtoExecutableLocation) { ); } -await mkdir("temp", { recursive: true }); +await mkdir("../../temp", { recursive: true }); let args = ""; -args += `-I=${ROOT}\n`; args += `--plugin=${tsProtoExecutableLocation}\n`; args += "--ts_proto_opt=esModuleInterop=true\n"; args += "--ts_proto_opt=oneof=unions-value\n"; @@ -40,10 +39,17 @@ args += "--ts_proto_opt=unrecognizedEnum=false\n"; args += "--ts_proto_opt=snakeToCamel=false\n"; args += `--ts_proto_out=${ROOT}\n`; +args += `-I=${ROOT}\n`; +// for (const dir of await readdir(ROOT)) { +// args += `-I=${ROOT}/${dir}\n`; +// } + const filesRaw = await readdir(`${ROOT}`, { recursive: true }); const files: string[] = []; for (const file of filesRaw) { + if (!file.startsWith("blitz/")) continue; + if (file.endsWith(".proto")) { files.push(file); args += `${ROOT}/${file}\n`; @@ -52,11 +58,9 @@ for (const file of filesRaw) { if (file.endsWith(".ts")) await rm(`${ROOT}/${file}`); } -await writeFile("temp/protoc.txt", args); +await writeFile("../../temp/protoc.txt", args); -// throw ""; - -execFile("protoc", ["@temp/protoc.txt"], (error, stdout, stderr) => { +execFile("protoc", ["@../../temp/protoc.txt"], (error, stdout, stderr) => { if (error) throw new Error(error.message); if (stderr) console.error(stderr); if (stdout) console.log(stdout); diff --git a/packages/website-ue/src/api/abstract.ts b/packages/website-ue/src/api/abstract.ts index 2a3d61dc2..e8d1b2d8a 100644 --- a/packages/website-ue/src/api/abstract.ts +++ b/packages/website-ue/src/api/abstract.ts @@ -1,6 +1,7 @@ import type { MetadataAccessor } from "@blitzkit/closed"; import type { Strings } from "@blitzkit/i18n"; import locales from "@blitzkit/i18n/locales.json"; +import type { TankUpgradePricePresetComponent } from "@protos/blitz/blitz_static_tank_upgrade_price_preset_component"; import type { Avatar } from "@protos/blitzkit/avatar"; import type { AvatarList } from "@protos/blitzkit/avatar_list"; import type { Avatars } from "@protos/blitzkit/avatars"; @@ -11,7 +12,6 @@ import type { Tank } from "@protos/blitzkit/tank"; import type { TankList } from "@protos/blitzkit/tank_list"; import type { Tanks } from "@protos/blitzkit/tanks"; import type { Tiers } from "@protos/blitzkit/tiers"; -import type { TankUpgradePricePresetComponent } from "@protos/game/proto/legacy/blitz_static_tank_upgrade_price_preset_component"; export abstract class AbstractAPI { abstract metadata: MetadataAccessor; diff --git a/packages/website-ue/src/api/client.ts b/packages/website-ue/src/api/client.ts index c042c9eb0..92e982ea1 100644 --- a/packages/website-ue/src/api/client.ts +++ b/packages/website-ue/src/api/client.ts @@ -1,11 +1,11 @@ import { fetchPB } from "@blitzkit/core"; import type { Strings } from "@blitzkit/i18n"; +import { TankUpgradePricePresetComponent } from "@protos/blitz/blitz_static_tank_upgrade_price_preset_component"; import { Avatars } from "@protos/blitzkit/avatars"; import { PopularTanks } from "@protos/blitzkit/popular_tanks"; import { TankList } from "@protos/blitzkit/tank_list"; import { Tanks } from "@protos/blitzkit/tanks"; import { Tiers } from "@protos/blitzkit/tiers"; -import { TankUpgradePricePresetComponent } from "@protos/game/proto/legacy/blitz_static_tank_upgrade_price_preset_component"; import { AbstractAPI, Cache } from "./abstract"; const rejected = Promise.reject("Not implemented on client"); diff --git a/packages/website-ue/src/api/server.ts b/packages/website-ue/src/api/server.ts index d8b4d1a59..dcb938665 100644 --- a/packages/website-ue/src/api/server.ts +++ b/packages/website-ue/src/api/server.ts @@ -2,6 +2,7 @@ import type { MetadataAccessor } from "@blitzkit/closed"; import { assertSecret, sluggify } from "@blitzkit/core"; import type { Strings } from "@blitzkit/i18n"; import locales from "@blitzkit/i18n/locales.json"; +import type { RemoteStorageComponent } from "@protos/blitz/blitz_static_remote_storage_component"; import type { Avatar, DeepPartial } from "@protos/blitzkit/avatar"; import type { Background } from "@protos/blitzkit/background"; import type { PopularTanks } from "@protos/blitzkit/popular_tanks"; @@ -9,7 +10,6 @@ import type { Tank } from "@protos/blitzkit/tank"; import type { TankListEntry } from "@protos/blitzkit/tank_list"; import type { Tanks } from "@protos/blitzkit/tanks"; import type { Tiers } from "@protos/blitzkit/tiers"; -import type { RemoteStorageComponent } from "@protos/game/proto/legacy/blitz_static_remote_storage_component"; import { existsSync } from "fs"; import { mkdir, readFile, writeFile } from "fs/promises"; import { google } from "googleapis"; diff --git a/packages/website-ue/src/components/AvatarCard/index.tsx b/packages/website-ue/src/components/AvatarCard/index.tsx index 4506b53e0..9b067be09 100644 --- a/packages/website-ue/src/components/AvatarCard/index.tsx +++ b/packages/website-ue/src/components/AvatarCard/index.tsx @@ -1,6 +1,6 @@ import { literals } from "@blitzkit/i18n"; +import { Grade } from "@protos/blitz/blitz_static_standard_grades_enum"; import type { Avatar } from "@protos/blitzkit/avatar"; -import { Grade } from "@protos/game/proto/legacy/blitz_static_standard_grades_enum"; import { DownloadIcon, StarFilledIcon } from "@radix-ui/react-icons"; import { useGameStrings } from "../../hooks/useGameStrings"; import { useStrings } from "../../hooks/useStrings"; diff --git a/packages/website-ue/src/components/Price/index.tsx b/packages/website-ue/src/components/Price/index.tsx index 7da0fb868..bcf063387 100644 --- a/packages/website-ue/src/components/Price/index.tsx +++ b/packages/website-ue/src/components/Price/index.tsx @@ -1,6 +1,6 @@ import { formatCompact } from "@blitzkit/core"; -import type { StandardPrice } from "@protos/game/proto/legacy/blitz_static_standard_price"; -import type { StandardSinglePrice } from "@protos/game/proto/legacy/blitz_static_standard_single_price"; +import type { StandardPrice } from "@protos/blitz/blitz_static_standard_price"; +import type { StandardSinglePrice } from "@protos/blitz/blitz_static_standard_single_price"; import type { ComponentProps } from "react"; import { useLocale } from "../../hooks/useLocale"; import { classNames } from "../../ui/classNames"; diff --git a/packages/website-ue/src/components/TankopediaLoadout/index.tsx b/packages/website-ue/src/components/TankopediaLoadout/index.tsx index 74acbc607..7bf5d8bb6 100644 --- a/packages/website-ue/src/components/TankopediaLoadout/index.tsx +++ b/packages/website-ue/src/components/TankopediaLoadout/index.tsx @@ -1,8 +1,8 @@ import { romanize } from "@blitzkit/core"; -import { Grade } from "@protos/game/proto/legacy/blitz_static_standard_grades_enum"; -import type { StandardPrice } from "@protos/game/proto/legacy/blitz_static_standard_price"; -import type { UpgradeLine } from "@protos/game/proto/legacy/blitz_static_tank_upgrade_line"; -import type { StageParameters } from "@protos/game/proto/legacy/blitz_static_tank_upgrade_single_stage"; +import { Grade } from "@protos/blitz/blitz_static_standard_grades_enum"; +import type { StandardPrice } from "@protos/blitz/blitz_static_standard_price"; +import type { UpgradeLine } from "@protos/blitz/blitz_static_tank_upgrade_line"; +import type { StageParameters } from "@protos/blitz/blitz_static_tank_upgrade_single_stage"; import { DoubleArrowDownIcon, DoubleArrowUpIcon } from "@radix-ui/react-icons"; import { useMemo } from "react"; import { diff --git a/packages/website-ue/src/pages/api/nations/[id]/card.webp.ts b/packages/website-ue/src/pages/api/nations/[id]/card.webp.ts index 72dafce15..9fc24e525 100644 --- a/packages/website-ue/src/pages/api/nations/[id]/card.webp.ts +++ b/packages/website-ue/src/pages/api/nations/[id]/card.webp.ts @@ -1,4 +1,4 @@ -import { Nation } from "@protos/game/proto/legacy/blitz_static_tank_component"; +import { Nation } from "@protos/blitz/blitz_static_tank_component"; import type { APIContext, GetStaticPaths } from "astro"; import { clientUnmountedResponse } from "../../../../api/responses"; import { game } from "../../../../game/game"; diff --git a/packages/website-ue/src/pages/api/tanks/presets/upgrade/[id].pb.ts b/packages/website-ue/src/pages/api/tanks/presets/upgrade/[id].pb.ts index 81a1ddc86..e257b07d0 100644 --- a/packages/website-ue/src/pages/api/tanks/presets/upgrade/[id].pb.ts +++ b/packages/website-ue/src/pages/api/tanks/presets/upgrade/[id].pb.ts @@ -1,4 +1,4 @@ -import { TankUpgradePricePresetComponent } from "@protos/game/proto/legacy/blitz_static_tank_upgrade_price_preset_component"; +import { TankUpgradePricePresetComponent } from "@protos/blitz/blitz_static_tank_upgrade_price_preset_component"; import type { APIContext, GetStaticPaths } from "astro"; import { api } from "../../../../../api/dynamic"; diff --git a/packages/website-ue/src/tankopedia/aggregateParameters.ts b/packages/website-ue/src/tankopedia/aggregateParameters.ts index 8059fa7ac..5ae957ecb 100644 --- a/packages/website-ue/src/tankopedia/aggregateParameters.ts +++ b/packages/website-ue/src/tankopedia/aggregateParameters.ts @@ -1,6 +1,6 @@ -import { StandardSinglePrice } from "@protos/game/proto/legacy/blitz_static_standard_single_price"; -import type { TankCatalogComponent } from "@protos/game/proto/legacy/blitz_static_tank_component"; -import { PenetrationGroup } from "@protos/game/proto/legacy/blitz_static_tank_penetration_group"; +import { StandardSinglePrice } from "@protos/blitz/blitz_static_standard_single_price"; +import type { TankCatalogComponent } from "@protos/blitz/blitz_static_tank_component"; +import { PenetrationGroup } from "@protos/blitz/blitz_static_tank_penetration_group"; import { ModuleUpgrade, ModuleUpgrade_Modifier, @@ -13,7 +13,7 @@ import { TankAttributeChange_AttributeName, TankAttributeChange_Modifier, VisualChanges, -} from "@protos/game/proto/legacy/blitz_static_tank_upgrade_single_stage"; +} from "@protos/blitz/blitz_static_tank_upgrade_single_stage"; import { isAlternativeLine, originalLineName, diff --git a/packages/website-ue/src/tankopedia/applyPitchYawLimits.ts b/packages/website-ue/src/tankopedia/applyPitchYawLimits.ts index 339f3b2ce..d9e86b2a0 100644 --- a/packages/website-ue/src/tankopedia/applyPitchYawLimits.ts +++ b/packages/website-ue/src/tankopedia/applyPitchYawLimits.ts @@ -1,5 +1,5 @@ import { normalizeAngleDeg } from "@blitzkit/core"; -import type { PitchLimit } from "@protos/game/proto/legacy/blitz_static_tank_upgrade_single_stage"; +import type { PitchLimit } from "@protos/blitz/blitz_static_tank_upgrade_single_stage"; import { clamp, degToRad, lerp, radToDeg } from "three/src/math/MathUtils.js"; export function applyPitchYawLimits( diff --git a/packages/website-ue/src/tankopedia/characteristics.ts b/packages/website-ue/src/tankopedia/characteristics.ts index 090acb17e..43754359e 100644 --- a/packages/website-ue/src/tankopedia/characteristics.ts +++ b/packages/website-ue/src/tankopedia/characteristics.ts @@ -1,10 +1,10 @@ -import type { Tank } from "@protos/blitzkit/tank"; -import { TankClass } from "@protos/game/proto/legacy/blitz_static_tank_component"; +import { TankClass } from "@protos/blitz/blitz_static_tank_component"; import { ShellUpgradeSingleChange_AttributeName, StageParameters, TankAttributeChange_AttributeName, -} from "@protos/game/proto/legacy/blitz_static_tank_upgrade_single_stage"; +} from "@protos/blitz/blitz_static_tank_upgrade_single_stage"; +import type { Tank } from "@protos/blitzkit/tank"; import { radToDeg } from "three/src/math/MathUtils.js"; import { applyPitchYawLimits } from "./applyPitchYawLimits"; import { TerrainHardness, type TankState } from "./tankState"; diff --git a/packages/website-ue/src/tankopedia/characteristicsOrder.tsx b/packages/website-ue/src/tankopedia/characteristicsOrder.tsx index 49bc74c63..d3898566b 100644 --- a/packages/website-ue/src/tankopedia/characteristicsOrder.tsx +++ b/packages/website-ue/src/tankopedia/characteristicsOrder.tsx @@ -3,7 +3,7 @@ import { Nation, TankClass, TankType, -} from "@protos/game/proto/legacy/blitz_static_tank_component"; +} from "@protos/blitz/blitz_static_tank_component"; import type { ReactNode } from "react"; import { VintageIcon } from "../icons/Vintage"; import { diff --git a/packages/website-ue/src/tankopedia/computeCharacteristics.ts b/packages/website-ue/src/tankopedia/computeCharacteristics.ts index 5ff43ae50..e81b9c5a3 100644 --- a/packages/website-ue/src/tankopedia/computeCharacteristics.ts +++ b/packages/website-ue/src/tankopedia/computeCharacteristics.ts @@ -1,8 +1,8 @@ -import type { Tank } from "@protos/blitzkit/tank"; import { ShellUpgradeSingleChange_AttributeName, TankAttributeChange_AttributeName, -} from "@protos/game/proto/legacy/blitz_static_tank_upgrade_single_stage"; +} from "@protos/blitz/blitz_static_tank_upgrade_single_stage"; +import type { Tank } from "@protos/blitzkit/tank"; import { aggregateParameters } from "./aggregateParameters"; import { characteristics,