From 638c2c73daa3e14494b388c3e96a3212827b3df0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sun, 21 Jan 2024 16:23:44 -0600 Subject: [PATCH] feat: full names and better default names --- scripts/buildAssets/constants.ts | 2 ++ scripts/buildAssets/definitions.ts | 20 +++++++++++--------- src/core/blitz/readYAML.ts | 8 ++++++++ 3 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 src/core/blitz/readYAML.ts diff --git a/scripts/buildAssets/constants.ts b/scripts/buildAssets/constants.ts index da9183931..ddf82aa74 100644 --- a/scripts/buildAssets/constants.ts +++ b/scripts/buildAssets/constants.ts @@ -4,6 +4,8 @@ export const DATA = export const POI = { vehicleDefinitions: 'XML/item_defs/vehicles', strings: 'Strings', + cachedStrings: + 'C:/Users/coola/Documents/DAVAProject/cache/localizations/en.yaml', tankParameters: '3d/Tanks/Parameters', smallIcons: 'Gfx/UI/BattleScreenHUD/SmallTankIcons', bigIcons: 'Gfx/UI/BigTankIcons', diff --git a/scripts/buildAssets/definitions.ts b/scripts/buildAssets/definitions.ts index 05214e20c..99b8d1098 100644 --- a/scripts/buildAssets/definitions.ts +++ b/scripts/buildAssets/definitions.ts @@ -3,6 +3,7 @@ import { parse } from 'path'; import { Vector3Tuple } from 'three'; import { TankType } from '../../src/components/Tanks'; import { readXMLDVPL } from '../../src/core/blitz/readXMLDVPL'; +import { readYAML } from '../../src/core/blitz/readYAML'; import { readYAMLDVPL } from '../../src/core/blitz/readYAMLDVPL'; import { toUniqueId } from '../../src/core/blitz/toUniqueId'; import { commitAssets } from '../../src/core/blitzkrieg/commitAssets'; @@ -231,8 +232,6 @@ const blitzShellKindToBLitzkrieg: Record = { HIGH_EXPLOSIVE: 'he', HOLLOW_CHARGE: 'hc', }; -const LANGUAGE = 'en'; - const missingStrings: Record = { '#artefacts:tungstentip/name': 'Tungsten Shells', }; @@ -252,8 +251,9 @@ export async function buildDefinitions(production: boolean) { ); const tankStringIdMap: Record = {}; const strings = await readYAMLDVPL( - `${DATA}/${POI.strings}/${LANGUAGE}.yaml.dvpl`, + `${DATA}/${POI.strings}/en.yaml.dvpl`, ); + const stringsCache = await readYAML(POI.cachedStrings); const optionalDevices = await readXMLDVPL<{ root: OptionalDevices }>( `${DATA}/${POI.optionalDevices}.dvpl`, ); @@ -331,12 +331,12 @@ export async function buildDefinitions(production: boolean) { equipment, name: (tank.shortUserString - ? strings[tank.shortUserString] + ? strings[tank.shortUserString] ?? + stringsCache[tank.shortUserString] : undefined) ?? strings[tank.userString] ?? - tankKey - .replaceAll('_', ' ') - .replace(/^[A-Z]+([a-z]+)?([0-9]+)? /, ''), + stringsCache[tank.userString], + name_full: strings[tank.userString] ?? stringsCache[tank.userString], nation, tree_type: (tank.sellPrice ? 'gold' in tank.sellPrice : false) ? 'collector' @@ -355,8 +355,10 @@ export async function buildDefinitions(production: boolean) { turrets: [], }; - if (strings[tank.userString] !== tankDefinitions[tankId].name) { - tankDefinitions[tankId].name_full = strings[tank.userString]; + if ( + tankDefinitions[tankId].name === tankDefinitions[tankId].name_full + ) { + delete tankDefinitions[tankId].name_full; } modelDefinitions[tankId] = { diff --git a/src/core/blitz/readYAML.ts b/src/core/blitz/readYAML.ts new file mode 100644 index 000000000..4bbcebee3 --- /dev/null +++ b/src/core/blitz/readYAML.ts @@ -0,0 +1,8 @@ +import { readFile } from 'fs/promises'; +import { parse } from 'yaml'; + +export async function readYAML(file: string) { + const yaml = (await readFile(file)).toString(); + + return parse(yaml) as Type; +}