From 3e00860f7faba5493bf05c2fed27a72681b0416f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Thu, 15 Aug 2024 13:35:09 -0500 Subject: [PATCH] feat: start of game mode icons --- scripts/buildAssets/definitions.ts | 39 ++++++++++++---------------- scripts/buildAssets/gameModeIcons.ts | 24 +++++++++++++++++ scripts/buildAssets/index.ts | 1 + src/core/blitzkit/gameDefinitions.ts | 3 +-- 4 files changed, 43 insertions(+), 24 deletions(-) create mode 100644 scripts/buildAssets/gameModeIcons.ts diff --git a/scripts/buildAssets/definitions.ts b/scripts/buildAssets/definitions.ts index 4971cada2..596b2f17e 100644 --- a/scripts/buildAssets/definitions.ts +++ b/scripts/buildAssets/definitions.ts @@ -400,6 +400,16 @@ interface AvailableNationsYaml { available_nations: string[]; } +export interface SquadBattleTypeUI { + Prototypes: { + components: { + UIDataLocalBindingsComponent: { + data: [string, string, string][]; + }; + }; + }[]; +} + const blitzShellKindToBlitzkit: Record = { ARMOR_PIERCING: ShellType.AP, ARMOR_PIERCING_CR: ShellType.APCR, @@ -486,33 +496,18 @@ export async function definitions(production: boolean) { `${DATA}/camouflages.yaml.dvpl`, ); const camouflagesXmlEntries = Object.entries(camouflagesXml.root.camouflages); + const squadBattleTypeUI = await readYAMLDVPL( + `${DATA}/UI/Screens3/Lobby/Hangar/Squad/SquadBattleType.yaml.dvpl`, + ); - for (const match of ( - await readYAMLDVPL<{ - Prototypes: { - components: { - UIDataLocalBindingsComponent: { - data: string[][]; - }; - }; - }[]; - }>(`${DATA}/UI/Screens3/Lobby/Hangar/Squad/SquadBattleType.yaml.dvpl`) - ).Prototypes[0].components.UIDataLocalBindingsComponent.data[1][2].matchAll( - /battleType\/([a-zA-Z]+)/g, + for (const match of squadBattleTypeUI.Prototypes[0].components.UIDataLocalBindingsComponent.data[1][2].matchAll( + /"(\d+)" -> "(battleType\/[a-zA-Z]+)"/g, )) { - const id = match[1]; - const name = strings[`battleType/${id}`]; - const description = ( - strings[`hangar/battleType/${id}ShortDescription`] ?? - strings[ - `hangar/battleType/${id.slice(0, 1).toUpperCase() + id.slice(1)}ShortDescription` - ] ?? - strings[`hangar/battleType/${id}Description`] - ).split('\n')[0]; + const id = Number(match[1]); + const name = strings[match[2]]; gameDefinitions.gameModes[id] = { name, - description, }; } diff --git a/scripts/buildAssets/gameModeIcons.ts b/scripts/buildAssets/gameModeIcons.ts new file mode 100644 index 000000000..31c7193c8 --- /dev/null +++ b/scripts/buildAssets/gameModeIcons.ts @@ -0,0 +1,24 @@ +import { readYAMLDVPL } from '../../src/core/blitz/readYAMLDVPL'; +import { DATA } from './constants'; +import { SquadBattleTypeUI } from './definitions'; + +// enum EGameMode { +// Rating = 7, +// Scuffle = 22, +// } + +export async function gameModeIcons(production: boolean) { + const squadBattleTypeUI = await readYAMLDVPL( + `${DATA}/UI/Screens3/Lobby/Hangar/Squad/SquadBattleType.yaml.dvpl`, + ); + + for (const match of squadBattleTypeUI.Prototypes[0].components.UIDataLocalBindingsComponent.data[0][2].matchAll( + /"(\d+)" -> "(battleType\/[a-zA-Z]+)"/g, + )) { + const id = Number(match[1]); + + // gameDefinitions.gameModes[id] = { + // name, + // }; + } +} diff --git a/scripts/buildAssets/index.ts b/scripts/buildAssets/index.ts index 2a9f8085c..7c62ac81e 100644 --- a/scripts/buildAssets/index.ts +++ b/scripts/buildAssets/index.ts @@ -29,6 +29,7 @@ import { videos } from './videos'; if (!targets && !allTargets) throw new Error('No target(s) specified'); const methods = [ + // gameModeIcons, definitions, tankIcons, videos, diff --git a/src/core/blitzkit/gameDefinitions.ts b/src/core/blitzkit/gameDefinitions.ts index 7697ff3cc..d167e5d46 100644 --- a/src/core/blitzkit/gameDefinitions.ts +++ b/src/core/blitzkit/gameDefinitions.ts @@ -3,13 +3,12 @@ import { fetchCdonLz4 } from './fetchCdonLz4'; interface GameMode { name: string; - description: string; } export interface GameDefinitions { version: string; nations: string[]; - gameModes: Record; + gameModes: Record; } export const gameDefinitions = fetchCdonLz4(