This commit is contained in:
tresabhi committed 2026-09-23 16:51:09 -05:00
1 parent 19556b5fc9
commit 444705347f
13 files changed
+49 -56

No files matched your search

+2 -2
View File
@@ -1,3 +1,4 @@
import { Strings } from "@blitzkit/i18n";
import { import {
CamouflageDefinitions, CamouflageDefinitions,
ConsumableDefinitions, ConsumableDefinitions,
@@ -9,8 +10,7 @@ import {
ProvisionDefinitions, ProvisionDefinitions,
SkillDefinitions, SkillDefinitions,
TankDefinitions, TankDefinitions,
} from "@blitzkit/core"; } from "@blitzkit/protos";
import { Strings } from "@blitzkit/i18n";
import { BlitzScripts } from "../../types/blitzScripts"; import { BlitzScripts } from "../../types/blitzScripts";
export abstract class AbstractBlitzKitAPI { export abstract class AbstractBlitzKitAPI {
@@ -1,5 +1,6 @@
import { Avatar, fetchGlossary, Gallery } from "@blitzkit/core"; import { fetchGlossary } from "@blitzkit/core";
import locales from "@blitzkit/i18n/locales.json"; import locales from "@blitzkit/i18n/locales.json";
import { Avatar, Gallery } from "@blitzkit/protos";
import { Cache } from "./0_base"; import { Cache } from "./0_base";
import { ServerBlitzKitAPI9 } from "./9_game"; import { ServerBlitzKitAPI9 } from "./9_game";
@@ -11,7 +12,7 @@ export abstract class ServerBlitzKitAPI10 extends ServerBlitzKitAPI9 {
await Promise.all( await Promise.all(
locales.supported.map(async (supported) => { locales.supported.map(async (supported) => {
const glossary = await fetchGlossary( const glossary = await fetchGlossary(
supported.blitz ?? supported.locale, supported.variant_blitz_local ?? supported.locale,
); );
console.log( console.log(
@@ -1,30 +1,32 @@
import { import {
AssaultRanges,
BlitzCrewType, BlitzCrewType,
BlitzModuleType, BlitzModuleType,
BlitzTankClass, BlitzTankClass,
ChassisDefinitionsList, ChassisDefinitionsList,
Crew,
EngineDefinitionsList, EngineDefinitionsList,
Equalizer,
GunDefinition,
GunDefinitionsList, GunDefinitionsList,
ModuleType,
ResearchCost,
ShellDefinitionsList, ShellDefinitionsList,
ShellKind, ShellKind,
sluggify, sluggify,
TankDefinitions,
TankPrice,
TankPriceType,
TankType,
toUniqueId, toUniqueId,
TurretDefinitionsList, TurretDefinitionsList,
Unlock,
UnlocksListing, UnlocksListing,
VehicleDefinitionList, VehicleDefinitionList,
VehicleDefinitions, VehicleDefinitions,
} from "@blitzkit/core"; } from "@blitzkit/core";
import {
AssaultRanges,
Crew,
Equalizer,
GunDefinition,
ModuleType,
ResearchCost,
TankDefinitions,
TankPrice,
TankPriceType,
TankType,
Unlock,
} from "@blitzkit/protos";
import { Cache, ServerBlitzKitAPI0 } from "./0_base"; import { Cache, ServerBlitzKitAPI0 } from "./0_base";
export abstract class ServerBlitzKitAPI1 extends ServerBlitzKitAPI0 { export abstract class ServerBlitzKitAPI1 extends ServerBlitzKitAPI0 {
@@ -1,8 +1,5 @@
import { import { BlitzTankFilterDefinitionCategory } from "@blitzkit/core";
BlitzTankFilterDefinitionCategory, import { Consumable, ConsumableDefinitions } from "@blitzkit/protos";
Consumable,
ConsumableDefinitions,
} from "@blitzkit/core";
import { Cache } from "./0_base"; import { Cache } from "./0_base";
import { ServerBlitzKitAPI5 } from "./5_equipments"; import { ServerBlitzKitAPI5 } from "./5_equipments";
@@ -1,8 +1,5 @@
import { import { BlitzTankFilterDefinitionCategory } from "@blitzkit/core";
BlitzTankFilterDefinitionCategory, import { Provision, ProvisionDefinitions } from "@blitzkit/protos";
Provision,
ProvisionDefinitions,
} from "@blitzkit/core";
import { Cache } from "./0_base"; import { Cache } from "./0_base";
import { ServerBlitzKitAPI6 } from "./6_consumables"; import { ServerBlitzKitAPI6 } from "./6_consumables";
@@ -1,5 +1,6 @@
import { BlitzTankClass, SkillDefinitions } from "@blitzkit/core"; import { BlitzTankClass } from "@blitzkit/core";
import { SkillDefinitions } from "@blitzkit/protos";
import { Cache } from "./0_base"; import { Cache } from "./0_base";
import { ServerBlitzKitAPI7 } from "./7_provisions"; import { ServerBlitzKitAPI7 } from "./7_provisions";
@@ -1,5 +1,6 @@
import { AvailableNationsYaml, GameDefinitions } from "@blitzkit/core"; import { AvailableNationsYaml } from "@blitzkit/core";
import { GameDefinitions } from "@blitzkit/protos";
import { Cache } from "./0_base"; import { Cache } from "./0_base";
import { ServerBlitzKitAPI8 } from "./8_skills"; import { ServerBlitzKitAPI8 } from "./8_skills";
@@ -1,4 +1,4 @@
import { TankClass } from "@blitzkit/core"; import { TankClass } from "@blitzkit/protos";
import type { ComponentProps, ReactNode } from "react"; import type { ComponentProps, ReactNode } from "react";
import { ClassHeavy } from "./components/ClassHeavy"; import { ClassHeavy } from "./components/ClassHeavy";
import { ClassLight } from "./components/ClassLight"; import { ClassLight } from "./components/ClassLight";
@@ -1,14 +1,7 @@
import { import { alias, TIER_ROMAN_NUMERALS } from "@blitzkit/core";
alias,
GunDefinition,
ShellType,
TANK_CLASSES,
TANK_TYPES,
TankType,
TIER_ROMAN_NUMERALS,
} from "@blitzkit/core";
import { literals } from "@blitzkit/i18n"; import { literals } from "@blitzkit/i18n";
import locales from "@blitzkit/i18n/locales.json"; import locales from "@blitzkit/i18n/locales.json";
import { ShellType, TankType, type GunDefinition } from "@blitzkit/protos";
import { import {
LockClosedIcon, LockClosedIcon,
LockOpen2Icon, LockOpen2Icon,
@@ -1,6 +1,6 @@
import type { Consumable } from "@blitzkit/core"; import type { Consumable } from "@blitzkit/core";
import { TrashIcon } from "@radix-ui/react-icons"; import { TrashIcon } from "@radix-ui/react-icons";
import { useCompatibility } from "../../hooks/useCompatibility"; import { useTankCompatibility } from "../../hooks/useTankCompatibility";
import { useConsumables } from "../../hooks/useConsumables"; import { useConsumables } from "../../hooks/useConsumables";
import { useProtagonist } from "../../hooks/useProtagonist"; import { useProtagonist } from "../../hooks/useProtagonist";
import { useProtagonistGun } from "../../hooks/useProtagonistGun"; import { useProtagonistGun } from "../../hooks/useProtagonistGun";
@@ -122,7 +122,7 @@ function Consumables({ characteristics }: ConsumablesProps) {
const consumables = useConsumables(); const consumables = useConsumables();
const tank = useProtagonist(); const tank = useProtagonist();
const gun = useProtagonistGun(); const gun = useProtagonistGun();
const isCompatible = useCompatibility(tank, gun); const isCompatible = useTankCompatibility(tank, gun);
return ( return (
<div className={styles.section}> <div className={styles.section}>
@@ -1,7 +1,7 @@
--- ---
import { ArrowLeftIcon } from "@radix-ui/react-icons"; import { ArrowLeftIcon } from "@radix-ui/react-icons";
import { api } from "../api/dynamic";
import type { Tool } from "../constants/tools"; import type { Tool } from "../constants/tools";
import { getStrings } from "../core/i18n/getStrings";
import { Logo } from "../icons/Logo"; import { Logo } from "../icons/Logo";
import { Back } from "./Back"; import { Back } from "./Back";
import { Flex } from "./Flex"; import { Flex } from "./Flex";
@@ -14,9 +14,8 @@ interface Props {
} }
const { tool, locale } = Astro.props; const { tool, locale } = Astro.props;
const strings = getStrings(locale); const strings = await api.strings(locale);
const toolStrings = const toolStrings = strings.tools[tool.id as keyof typeof strings.tools];
strings.website.tools[tool.id as keyof typeof strings.website.tools];
--- ---
<style> <style>
@@ -1,7 +1,7 @@
import type { TankDefinition } from "@blitzkit/core"; import type { TankDefinition } from "@blitzkit/protos";
import { checkConsumableProvisionInclusivity } from "@blitzkit/core/src/blitzkit/checkConsumableProvisionInclusivity";
import { times } from "lodash-es"; import { times } from "lodash-es";
import { api } from "../../api/dynamic"; import { api } from "../../api/dynamic";
import { isTankCompatible } from "../../hooks/useTankCompatibility";
import type { TankFilters } from "../../stores/tankFilters"; import type { TankFilters } from "../../stores/tankFilters";
const SHELLS = times(3, (index) => index); const SHELLS = times(3, (index) => index);
@@ -51,10 +51,11 @@ export async function filterTank(
filters.consumables.every((consumable) => filters.consumables.every((consumable) =>
tank.turrets.some((turret) => tank.turrets.some((turret) =>
turret.guns.some((gun) => turret.guns.some((gun) =>
checkConsumableProvisionInclusivity( isTankCompatible(
consumableDefinitions.consumables[consumable],
tank, tank,
gun, gun,
consumableDefinitions.consumables[consumable].include,
consumableDefinitions.consumables[consumable].exclude,
), ),
), ),
), ),
@@ -63,10 +64,11 @@ export async function filterTank(
filters.provisions.every((provision) => filters.provisions.every((provision) =>
tank.turrets.some((turret) => tank.turrets.some((turret) =>
turret.guns.some((gun) => turret.guns.some((gun) =>
checkConsumableProvisionInclusivity( isTankCompatible(
provisionDefinitions.provisions[provision],
tank, tank,
gun, gun,
provisionDefinitions.provisions[provision].include,
provisionDefinitions.provisions[provision].exclude,
), ),
), ),
), ),
@@ -1,20 +1,20 @@
import { import {
ConsumableTankCategoryFilterCategory, ConsumableTankCategoryFilterCategory,
type GunDefinition, GunDefinition,
type TankDefinition, TankDefinition,
type TankInclusivityFilter, TankInclusivityFilter,
} from "@blitzkit/core"; } from "@blitzkit/protos";
export function useCompatibility(tank: TankDefinition, gun: GunDefinition) { export function useTankCompatibility(tank: TankDefinition, gun: GunDefinition) {
return function ( return function (
include?: TankInclusivityFilter[], include?: TankInclusivityFilter[],
exclude?: TankInclusivityFilter[], exclude?: TankInclusivityFilter[],
) { ) {
return tankCompatibility(tank, gun, include, exclude); return isTankCompatible(tank, gun, include, exclude);
}; };
} }
function tankCompatibility( export function isTankCompatible(
tank: TankDefinition, tank: TankDefinition,
gun: GunDefinition, gun: GunDefinition,
include?: TankInclusivityFilter[], include?: TankInclusivityFilter[],