From 94f67e30f1599a53a967d2dbff9d7c9128bc144c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sat, 5 Oct 2024 15:24:54 -0500 Subject: [PATCH] fix: some linting for new proto --- bun.lockb | Bin 430209 -> 430209 bytes package.json | 1 - packages/bot/src/commands/ownedTanks.tsx | 10 +- .../src/core/blitzkit/nonBlockingPromises.ts | 4 + packages/core/package.json | 21 +- .../src/blitzkit/tankDefinitions/constants.ts | 90 ++++---- .../core/src/protos/average_definitions.proto | 64 +++--- .../src/protos/camouflage_definitions.proto | 6 +- .../src/protos/consumable_definitions.proto | 14 +- .../src/protos/equipment_definitions.proto | 10 +- .../core/src/protos/game_definitions.proto | 6 +- .../core/src/protos/map_definitions.proto | 6 +- .../core/src/protos/model_definitions.proto | 58 +++--- .../src/protos/provision_definitions.proto | 8 +- packages/core/src/protos/reviews.proto | 8 +- .../core/src/protos/skill_definitions.proto | 2 +- .../core/src/protos/tank_definitions.proto | 178 ++++++++-------- packages/core/src/protos/test.proto | 10 - .../scripts/src/buildAssets/definitions.ts | 196 +++++++++++------- packages/scripts/src/buildAssets/index.ts | 4 +- packages/scripts/src/protos.ts | 3 - 21 files changed, 372 insertions(+), 327 deletions(-) create mode 100644 packages/bot/src/core/blitzkit/nonBlockingPromises.ts delete mode 100644 packages/core/src/protos/test.proto diff --git a/bun.lockb b/bun.lockb index 66b3294f5b4fb3153fd029203bd5745e6eb4c1c3..06bfea4b5785c7fd12803034d0909d7861949d4e 100644 GIT binary patch delta 25827 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 => { const filteredTanks = ( await Promise.all( tankStats.map(async (tankData) => ({ - tankDefinitions: (await tankDefinitions)[tankData.tank_id]!, + tankDefinitions: (await tankDefinitions).tanks[tankData.tank_id]!, id: tankData.tank_id, })), ) @@ -61,7 +63,7 @@ export const ownedTanksCommand = new Promise((resolve) => { const awaitedTankDefinitions = await tankDefinitions; const awaitedGameDefinitions = await gameDefinitions; const lines = tankStats - .map(({ tank_id }) => awaitedTankDefinitions[tank_id]) + .map(({ tank_id }) => awaitedTankDefinitions.tanks[tank_id]) .filter((tank) => tank.tier === tier) .sort( (a, b) => diff --git a/packages/bot/src/core/blitzkit/nonBlockingPromises.ts b/packages/bot/src/core/blitzkit/nonBlockingPromises.ts new file mode 100644 index 000000000..25224648a --- /dev/null +++ b/packages/bot/src/core/blitzkit/nonBlockingPromises.ts @@ -0,0 +1,4 @@ +import { fetchGameDefinitions, fetchTankDefinitions } from '@blitzkit/core'; + +export const tankDefinitions = fetchTankDefinitions(); +export const gameDefinitions = fetchGameDefinitions(); diff --git a/packages/core/package.json b/packages/core/package.json index daea6d2c4..6c1379350 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -4,18 +4,19 @@ "type": "module", "main": "src/index.ts", "dependencies": { - "@octokit/rest": "^20.1.1", - "lodash": "^4.17.21", - "@prisma/client": "^5.19.1", "@octokit/plugin-throttling": "^8.2.0", - "protobufjs": "^7.4.0", - "lz4js": "^0.2.0", - "yaml": "^2.5.0", - "sharp": "^0.33.5", - "dotenv": "^16.4.5", - "pickleparser": "^0.2.1", + "@octokit/rest": "^20.1.1", + "@prisma/client": "^5.19.1", "adm-zip": "^0.5.16", - "crc": "^4.3.2" + "crc": "^4.3.2", + "dotenv": "^16.4.5", + "lodash": "^4.17.21", + "lz4js": "^0.2.0", + "pickleparser": "^0.2.1", + "protobufjs": "^7.4.0", + "sharp": "^0.33.5", + "ts-proto": "^2.2.2", + "yaml": "^2.5.0" }, "devDependencies": { "@types/adm-zip": "^0.5.5", diff --git a/packages/core/src/blitzkit/tankDefinitions/constants.ts b/packages/core/src/blitzkit/tankDefinitions/constants.ts index 6c155af3a..b0141f139 100644 --- a/packages/core/src/blitzkit/tankDefinitions/constants.ts +++ b/packages/core/src/blitzkit/tankDefinitions/constants.ts @@ -5,65 +5,74 @@ import { TankClass, TankType, Tier, -} from '.'; +} from '../../protos'; export const SHELL_NAMES: Record = { - ap: 'AP', - ap_cr: 'APCR', - hc: 'HEAT', - he: 'HE', + [ShellType.AP]: 'AP', + [ShellType.APCR]: 'APCR', + [ShellType.HEAT]: 'HEAT', + [ShellType.HE]: 'HE', + [ShellType.UNRECOGNIZED]: 'unrecognized', }; export const CREW_MEMBER_NAMES: Record = { - commander: 'Commander', - radioman: 'Radioman', - gunner: 'Gunner', - driver: 'Driver', - loader: 'Loader', + [CrewType.COMMANDER]: 'Commander', + [CrewType.DRIVER]: 'Driver', + [CrewType.GUNNER]: 'Gunner', + [CrewType.LOADER]: 'Loader', + [CrewType.RADIOMAN]: 'Radioman', + [CrewType.UNRECOGNIZED]: 'unrecognized', }; -export const GUN_TYPE_NAMES: Record = { - regular: 'Regular', +export const GUN_TYPE_NAMES: Record< + Exclude['$case'], + string +> = { autoLoader: 'Auto loader', autoReloader: 'Auto reloader', + regular: 'Regular', }; /** * @deprecated use svg */ export const TANK_ICONS: Record = { - 'AT-SPG': 'https://i.imgur.com/BIHSEH0.png', - lightTank: 'https://i.imgur.com/CSNha5V.png', - mediumTank: 'https://i.imgur.com/wvf3ltm.png', - heavyTank: 'https://i.imgur.com/ECeqlZa.png', + [TankClass.TANK_DESTROYER]: 'https://i.imgur.com/BIHSEH0.png', + [TankClass.LIGHT]: 'https://i.imgur.com/CSNha5V.png', + [TankClass.MEDIUM]: 'https://i.imgur.com/wvf3ltm.png', + [TankClass.HEAVY]: 'https://i.imgur.com/ECeqlZa.png', + [TankClass.UNRECOGNIZED]: 'https://i.imgur.com/6FBBzb9.png', // lmfao click on this }; /** * @deprecated use svg */ export const TANK_ICONS_PREMIUM: Record = { - 'AT-SPG': 'https://i.imgur.com/TCu3EdR.png', - lightTank: 'https://i.imgur.com/zdkpTRb.png', - mediumTank: 'https://i.imgur.com/3z7eHX6.png', - heavyTank: 'https://i.imgur.com/P3vbmyA.png', + [TankClass.TANK_DESTROYER]: 'https://i.imgur.com/TCu3EdR.png', + [TankClass.LIGHT]: 'https://i.imgur.com/zdkpTRb.png', + [TankClass.MEDIUM]: 'https://i.imgur.com/3z7eHX6.png', + [TankClass.HEAVY]: 'https://i.imgur.com/P3vbmyA.png', + [TankClass.UNRECOGNIZED]: 'https://i.imgur.com/6FBBzb9.png', }; /** * @deprecated use svg */ export const TANK_ICONS_COLLECTOR: Record = { - 'AT-SPG': 'https://i.imgur.com/WTjeirB.png', - lightTank: 'https://i.imgur.com/EwhtKkU.png', - mediumTank: 'https://i.imgur.com/u8YDMBh.png', - heavyTank: 'https://i.imgur.com/8xRf3nc.png', + [TankClass.TANK_DESTROYER]: 'https://i.imgur.com/WTjeirB.png', + [TankClass.LIGHT]: 'https://i.imgur.com/EwhtKkU.png', + [TankClass.MEDIUM]: 'https://i.imgur.com/u8YDMBh.png', + [TankClass.HEAVY]: 'https://i.imgur.com/8xRf3nc.png', + [TankClass.UNRECOGNIZED]: 'https://i.imgur.com/6FBBzb9.png', }; export const TIERS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] as const; export const TIER_ROMAN_NUMERALS: Record = { - 1: 'I', - 2: 'II', - 3: 'III', - 4: 'IV', - 5: 'V', - 6: 'VI', - 7: 'VII', - 8: 'VIII', - 9: 'IX', - 10: 'X', + [Tier.I]: 'I', + [Tier.II]: 'II', + [Tier.III]: 'III', + [Tier.IV]: 'IV', + [Tier.V]: 'V', + [Tier.VI]: 'VI', + [Tier.VII]: 'VII', + [Tier.VIII]: 'VIII', + [Tier.IX]: 'IX', + [Tier.X]: 'X', + [Tier.UNRECOGNIZED]: 'unrecognized', }; export const flags: Record = { @@ -78,7 +87,14 @@ export const flags: Record = { other: '<:other:1218421572243558482>', }; export const TREE_TYPE_ICONS: Record> = { - researchable: TANK_ICONS, - premium: TANK_ICONS_PREMIUM, - collector: TANK_ICONS_COLLECTOR, + [TankType.RESEARCHABLE]: TANK_ICONS, + [TankType.PREMIUM]: TANK_ICONS_PREMIUM, + [TankType.COLLECTOR]: TANK_ICONS_COLLECTOR, + [TankType.UNRECOGNIZED]: { + '-1': 'https://i.imgur.com/6FBBzb9.png', + '0': 'https://i.imgur.com/6FBBzb9.png', + '1': 'https://i.imgur.com/6FBBzb9.png', + '2': 'https://i.imgur.com/6FBBzb9.png', + '3': 'https://i.imgur.com/6FBBzb9.png', + }, }; diff --git a/packages/core/src/protos/average_definitions.proto b/packages/core/src/protos/average_definitions.proto index 4070567ad..3844b4738 100644 --- a/packages/core/src/protos/average_definitions.proto +++ b/packages/core/src/protos/average_definitions.proto @@ -1,47 +1,47 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; message AverageDefinitions { map averages = 1; - Samples samples = 2; - uint64 time = 3; + required Samples samples = 2; + required uint64 time = 3; } message AverageDefinitionsEntry { - AverageDefinitionsAllStats mu = 1; - AverageDefinitionsAllStats sigma = 2; - AverageDefinitionsAllStats r = 3; - Samples samples = 4; + required AverageDefinitionsAllStats mu = 1; + required AverageDefinitionsAllStats sigma = 2; + required AverageDefinitionsAllStats r = 3; + required Samples samples = 4; } message AverageDefinitionsAllStats { - float battles = 1; - float capture_points = 2; - float damage_dealt = 3; - float damage_received = 4; - float dropped_capture_points = 5; - float frags = 6; - float frags8p = 7; - float hits = 8; - float losses = 9; - float max_frags = 10; - float max_xp = 11; - float shots = 12; - float spotted = 13; - float survived_battles = 14; - float win_and_survived = 15; - float wins = 16; - float xp = 17; - float battle_life_time = 18; + required float battles = 1; + required float capture_points = 2; + required float damage_dealt = 3; + required float damage_received = 4; + required float dropped_capture_points = 5; + required float frags = 6; + required float frags8p = 7; + required float hits = 8; + required float losses = 9; + required float max_frags = 10; + required float max_xp = 11; + required float shots = 12; + required float spotted = 13; + required float survived_battles = 14; + required float win_and_survived = 15; + required float wins = 16; + required float xp = 17; + required float battle_life_time = 18; } message Samples { - uint32 d_1 = 1; - uint32 d_7 = 2; - uint32 d_30 = 3; - uint32 d_60 = 4; - uint32 d_90 = 5; - uint32 d_120 = 6; - uint32 total = 7; + required uint32 d_1 = 1; + required uint32 d_7 = 2; + required uint32 d_30 = 3; + required uint32 d_60 = 4; + required uint32 d_90 = 5; + required uint32 d_120 = 6; + required uint32 total = 7; } \ No newline at end of file diff --git a/packages/core/src/protos/camouflage_definitions.proto b/packages/core/src/protos/camouflage_definitions.proto index 6c9752751..80f101a5a 100644 --- a/packages/core/src/protos/camouflage_definitions.proto +++ b/packages/core/src/protos/camouflage_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; @@ -7,8 +7,8 @@ message CamouflageDefinitions { } message Camouflage { - uint32 id = 1; - string name = 2; + required uint32 id = 1; + required string name = 2; optional string tank_name = 3; optional string tank_name_full = 4; } \ No newline at end of file diff --git a/packages/core/src/protos/consumable_definitions.proto b/packages/core/src/protos/consumable_definitions.proto index dcf589e90..19a89515f 100644 --- a/packages/core/src/protos/consumable_definitions.proto +++ b/packages/core/src/protos/consumable_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; @@ -9,11 +9,11 @@ message ConsumableDefinitions { } message Consumable { - uint32 id = 1; - string name = 2; - uint32 cooldown = 3; + required uint32 id = 1; + required string name = 2; + required uint32 cooldown = 3; optional uint32 duration = 4; - bool game_mode_exclusive = 5; + required bool game_mode_exclusive = 5; repeated ConsumableTankFilter include = 6; repeated ConsumableTankFilter exclude = 7; } @@ -28,8 +28,8 @@ message ConsumableTankFilter { } message ConsumableTankTierFilter { - Tier min = 1; - Tier max = 2; + required Tier min = 1; + required Tier max = 2; } message ConsumableTankIdsFilter { diff --git a/packages/core/src/protos/equipment_definitions.proto b/packages/core/src/protos/equipment_definitions.proto index 2fb92aad5..c954424d4 100644 --- a/packages/core/src/protos/equipment_definitions.proto +++ b/packages/core/src/protos/equipment_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; @@ -8,8 +8,8 @@ message EquipmentDefinitions { } message Equipment { - string name = 1; - string description = 2; + required string name = 1; + required string description = 2; } message EquipmentPreset { @@ -17,6 +17,6 @@ message EquipmentPreset { } message EquipmentSlot { - uint32 left = 1; - uint32 right = 2; + required uint32 left = 1; + required uint32 right = 2; } \ No newline at end of file diff --git a/packages/core/src/protos/game_definitions.proto b/packages/core/src/protos/game_definitions.proto index ea6a7ed1e..7d3ffcb48 100644 --- a/packages/core/src/protos/game_definitions.proto +++ b/packages/core/src/protos/game_definitions.proto @@ -1,16 +1,16 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; message GameDefinitions { - string version = 1; + required string version = 1; repeated string nations = 2; map gameModes = 3; map roles = 4; } message GameMode { - string name = 1; + required string name = 1; } message GameModeRole { diff --git a/packages/core/src/protos/map_definitions.proto b/packages/core/src/protos/map_definitions.proto index ae8ae4722..27c11112e 100644 --- a/packages/core/src/protos/map_definitions.proto +++ b/packages/core/src/protos/map_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; @@ -7,6 +7,6 @@ message MapDefinitions { } message MapDefinition { - uint32 id = 1; - string name = 2; + required uint32 id = 1; + required string name = 2; } \ No newline at end of file diff --git a/packages/core/src/protos/model_definitions.proto b/packages/core/src/protos/model_definitions.proto index d5f1586b5..2bc0df49d 100644 --- a/packages/core/src/protos/model_definitions.proto +++ b/packages/core/src/protos/model_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; @@ -7,12 +7,12 @@ message ModelDefinitions { } message ModelDefinition { - Armor armor = 1; - Vector3 turret_origin = 2; + required Armor armor = 1; + required Vector3 turret_origin = 2; optional InitialTurretRotation initial_turret_rotation = 3; map turrets = 4; map tracks = 5; - BoundingBox bounding_box = 6; + required BoundingBox bounding_box = 6; } message Armor { @@ -21,59 +21,59 @@ message Armor { } message Vector3 { - float x = 1; - float y = 2; - float z = 3; + required float x = 1; + required float y = 2; + required float z = 3; } message InitialTurretRotation { - float yaw = 1; - float pitch = 2; - float roll = 3; + required float yaw = 1; + required float pitch = 2; + required float roll = 3; } message TurretModelDefinition { - BoundingBox bounding_box = 1; - Armor armor = 2; - uint32 model_id = 3; - Vector3 gun_origin = 4; + required BoundingBox bounding_box = 1; + required Armor armor = 2; + required uint32 model_id = 3; + required Vector3 gun_origin = 4; map guns = 5; optional YawLimits yaw = 6; } message YawLimits { - float min = 1; - float max = 2; + required float min = 1; + required float max = 2; } message BoundingBox { - Vector3 min = 1; - Vector3 max = 2; + required Vector3 min = 1; + required Vector3 max = 2; } message TrackModelDefinition { - uint32 thickness = 1; - Vector3 origin = 2; + required uint32 thickness = 1; + required Vector3 origin = 2; } message GunModelDefinition { - Armor armor = 1; - uint32 thickness = 2; - uint32 model_id = 3; - PitchLimits pitch = 4; + required Armor armor = 1; + required uint32 thickness = 2; + required uint32 model_id = 3; + required PitchLimits pitch = 4; optional float mask = 5; } message PitchLimits { - float min = 1; - float max = 2; + required float min = 1; + required float max = 2; optional PitchLimitsExtrema front = 3; optional PitchLimitsExtrema back = 4; optional float transition = 5; } message PitchLimitsExtrema { - float min = 1; - float max = 2; - float range = 3; + required float min = 1; + required float max = 2; + required float range = 3; } \ No newline at end of file diff --git a/packages/core/src/protos/provision_definitions.proto b/packages/core/src/protos/provision_definitions.proto index a1f29ecf8..357c9975c 100644 --- a/packages/core/src/protos/provision_definitions.proto +++ b/packages/core/src/protos/provision_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; @@ -9,10 +9,10 @@ message ProvisionDefinitions { } message Provision { - uint32 id = 1; - string name = 2; + required uint32 id = 1; + required string name = 2; optional float crew = 3; - bool game_mode_exclusive = 5; + required bool game_mode_exclusive = 5; repeated ConsumableTankFilter include = 6; repeated ConsumableTankFilter exclude = 7; } \ No newline at end of file diff --git a/packages/core/src/protos/reviews.proto b/packages/core/src/protos/reviews.proto index 482daeb75..2ad85ed16 100644 --- a/packages/core/src/protos/reviews.proto +++ b/packages/core/src/protos/reviews.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; @@ -7,11 +7,11 @@ message Reviews { } message Review { - float last_updated = 1; + required float last_updated = 1; repeated Video videos = 2; } message Video { - string id = 1; - string author = 2; + required string id = 1; + required string author = 2; } \ No newline at end of file diff --git a/packages/core/src/protos/skill_definitions.proto b/packages/core/src/protos/skill_definitions.proto index e7ec3d733..b22f19046 100644 --- a/packages/core/src/protos/skill_definitions.proto +++ b/packages/core/src/protos/skill_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; diff --git a/packages/core/src/protos/tank_definitions.proto b/packages/core/src/protos/tank_definitions.proto index 0cda39bb3..d3b05e951 100644 --- a/packages/core/src/protos/tank_definitions.proto +++ b/packages/core/src/protos/tank_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto3"; +syntax = "proto2"; package blitzkit; @@ -7,37 +7,37 @@ message TankDefinitions { } message TankDefinition { - uint32 id = 1; + required uint32 id = 1; map roles = 2; optional string description = 3; - bool fixed_camouflage = 4; + required bool fixed_camouflage = 4; repeated int32 camouflages = 5; repeated int32 ancestors = 6; repeated int32 successors = 7; repeated Crew crew = 8; - uint32 health = 9; - string nation = 10; - string name = 11; + required uint32 health = 9; + required string nation = 10; + required string name = 11; optional string name_full = 12; - TankType type = 13; - uint32 max_consumables = 14; - uint32 max_provisions = 15; - Tier tier = 16; - TankClass class = 17; - bool testing = 18; - bool deprecated = 19; + required TankType type = 13; + required uint32 max_consumables = 14; + required uint32 max_provisions = 15; + required Tier tier = 16; + required TankClass class = 17; + required bool testing = 18; + required bool deprecated = 19; repeated TurretDefinition turrets = 20; repeated EngineDefinition engines = 21; repeated TrackDefinition tracks = 22; - TankPrice price = 23; + required TankPrice price = 23; optional uint32 xp = 24; - float speed_forwards = 25; - float speed_backwards = 26; - float camouflage_still = 27; - float camouflage_moving = 28; - float camouflage_onFire = 29; - string equipment_preset = 30; - uint32 weight = 31; + required float speed_forwards = 25; + required float speed_backwards = 26; + required float camouflage_still = 27; + required float camouflage_moving = 28; + required float camouflage_onFire = 29; + required string equipment_preset = 30; + required uint32 weight = 31; } enum TankPriceType { @@ -46,45 +46,45 @@ enum TankPriceType { } message TankPrice { - TankPriceType type = 1; - uint32 value = 2; + required TankPriceType type = 1; + required uint32 value = 2; } message TrackDefinition { - uint32 id = 1; - Tier tier = 2; - string name = 3; - uint32 weight = 4; - float traverse_speed = 5; + required uint32 id = 1; + required Tier tier = 2; + required string name = 3; + required uint32 weight = 4; + required float traverse_speed = 5; optional uint32 xp = 6; - float dispersion_move = 7; - float dispersion_traverse = 8; - float resistance_hard = 9; - float resistance_medium = 10; - float resistance_soft = 11; + required float dispersion_move = 7; + required float dispersion_traverse = 8; + required float resistance_hard = 9; + required float resistance_medium = 10; + required float resistance_soft = 11; repeated Unlock unlocks = 12; } message EngineDefinition { - uint32 id = 1; - string name = 2; + required uint32 id = 1; + required string name = 2; optional uint32 xp = 3; - Tier tier = 4; + required Tier tier = 4; optional float fire_chance = 5; - uint32 power = 6; - uint32 weight = 7; + required uint32 power = 6; + required uint32 weight = 7; repeated Unlock unlocks = 8; } message TurretDefinition { - uint32 id = 1; - uint32 health = 2; - uint32 view_range = 3; - float traverse_speed = 4; + required uint32 id = 1; + required uint32 health = 2; + required uint32 view_range = 3; + required float traverse_speed = 4; optional uint32 xp = 5; - string name = 6; - Tier tier = 7; - uint32 weight = 8; + required string name = 6; + required Tier tier = 7; + required uint32 weight = 8; repeated GunDefinition guns = 9; repeated Unlock unlocks = 10; } @@ -98,66 +98,66 @@ message GunDefinition { } message GunDefinitionRegular { - GunDefinitionBase gun = 1; - GunDefinitionRegularProperties regular = 2; + required GunDefinitionBase gun = 1; + required GunDefinitionRegularProperties regular = 2; } message GunDefinitionRegularProperties { - float reload = 1; + required float reload = 1; } message GunDefinitionAutoLoader { - GunDefinitionBase gun = 1; - GunDefinitionAutoLoaderProperties auto_loader = 2; + required GunDefinitionBase gun = 1; + required GunDefinitionAutoLoaderProperties auto_loader = 2; } message GunDefinitionAutoLoaderProperties { - float clip_reload = 1; - float intra_clip = 2; - float shell_count = 3; + required float clip_reload = 1; + required float intra_clip = 2; + required float shell_count = 3; } message GunDefinitionAutoReloader { - GunDefinitionBase gun = 1; - GunDefinitionAutoReloaderProperties auto_reloader = 2; + required GunDefinitionBase gun = 1; + required GunDefinitionAutoReloaderProperties auto_reloader = 2; } message GunDefinitionAutoReloaderProperties { repeated float shell_reloads = 1; - float intra_clip = 2; - float shell_count = 3; + required float intra_clip = 2; + required float shell_count = 3; } message GunDefinitionBase { - uint32 id = 1; - float rotation_speed = 2; + required uint32 id = 1; + required float rotation_speed = 2; optional uint32 xp = 3; - uint32 weight = 4; - string name = 5; - Tier tier = 6; + required uint32 weight = 4; + required string name = 5; + required Tier tier = 6; repeated ShellDefinition shells = 7; - float camouflage_loss = 8; - float aim_time = 9; - float dispersion_base = 10; - float dispersion_traverse = 11; - float dispersion_shot = 12; - float dispersion_damaged = 13; + required float camouflage_loss = 8; + required float aim_time = 9; + required float dispersion_base = 10; + required float dispersion_traverse = 11; + required float dispersion_shot = 12; + required float dispersion_damaged = 13; repeated Unlock unlocks = 14; } message ShellDefinition { - uint32 id = 1; - string name = 2; - uint32 velocity = 3; - uint32 armor_damage = 4; - uint32 module_damage = 5; - uint32 caliber = 6; - string icon = 7; - ShellPenetration penetration = 8; - ShellType type = 9; - uint32 normalization = 10; - uint32 ricochet = 11; - uint32 explosion_radius = 12; + required uint32 id = 1; + required string name = 2; + required uint32 velocity = 3; + required uint32 armor_damage = 4; + required uint32 module_damage = 5; + required uint32 caliber = 6; + required string icon = 7; + required ShellPenetration penetration = 8; + required ShellType type = 9; + required uint32 normalization = 10; + required uint32 ricochet = 11; + required uint32 explosion_radius = 12; } enum ShellType { @@ -168,19 +168,19 @@ enum ShellType { } message ShellPenetration { - uint32 near = 1; - uint32 far = 2; + required uint32 near = 1; + required uint32 far = 2; } message Unlock { - int32 id = 1; - ModuleType type = 2; - UnlockCost cost = 3; + required int32 id = 1; + required ModuleType type = 2; + required UnlockCost cost = 3; } message UnlockCost { - string type = 1; - int32 value = 2; + required string type = 1; + required int32 value = 2; } enum ModuleType { @@ -218,8 +218,8 @@ enum TankType { } message Crew { - CrewType type = 1; - uint32 count = 2; + required CrewType type = 1; + required uint32 count = 2; repeated CrewType substitute = 3; } diff --git a/packages/core/src/protos/test.proto b/packages/core/src/protos/test.proto deleted file mode 100644 index 88b4589ef..000000000 --- a/packages/core/src/protos/test.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - -message Test { - Child child_b = 1; - uint32 child_a = 2; -} - -message Child { - string value = 1; -} \ No newline at end of file diff --git a/packages/scripts/src/buildAssets/definitions.ts b/packages/scripts/src/buildAssets/definitions.ts index cec78d613..4e40591ee 100644 --- a/packages/scripts/src/buildAssets/definitions.ts +++ b/packages/scripts/src/buildAssets/definitions.ts @@ -46,17 +46,17 @@ const blitzTankFilterDefinitionCategoryToBlitzkit: Record< BlitzTankFilterDefinitionCategory, ConsumableTankCategoryFilterCategory > = { - clip: ConsumableTankCategoryFilterCategory.TANK_CATEGORY_CLIP, + clip: ConsumableTankCategoryFilterCategory.CLIP, }; function vector3TupleToBlitzkit(tuple: Vector3Tuple) { return { x: tuple[0], y: tuple[1], z: tuple[2] } satisfies Vector3; } type BlitzTankClass = 'lightTank' | 'mediumTank' | 'heavyTank' | 'AT-SPG'; const blitzTankClassToBlitzkit: Record = { - lightTank: TankClass.TANK_CLASS_LIGHT, - 'AT-SPG': TankClass.TANK_CLASS_TANK_DESTROYER, - heavyTank: TankClass.TANK_CLASS_HEAVY, - mediumTank: TankClass.TANK_CLASS_MEDIUM, + lightTank: TankClass.LIGHT, + 'AT-SPG': TankClass.TANK_DESTROYER, + heavyTank: TankClass.HEAVY, + mediumTank: TankClass.MEDIUM, }; export interface BlitzStrings { [key: string]: string; @@ -115,18 +115,18 @@ type BlitzModuleType = { type UnlocksListing = BlitzModuleType | undefined; type BlitzCrewType = 'commander' | 'radioman' | 'gunner' | 'driver' | 'loader'; const blitzCrewTypeToBlitzkit: Record = { - commander: CrewType.CREW_TYPE_COMMANDER, - driver: CrewType.CREW_TYPE_DRIVER, - gunner: CrewType.CREW_TYPE_GUNNER, - loader: CrewType.CREW_TYPE_LOADER, - radioman: CrewType.CREW_TYPE_RADIOMAN, + commander: CrewType.COMMANDER, + driver: CrewType.DRIVER, + gunner: CrewType.GUNNER, + loader: CrewType.LOADER, + radioman: CrewType.RADIOMAN, }; const blitzkitCrewTypeToBlitz: Record = { - [CrewType.CREW_TYPE_COMMANDER]: 'commander', - [CrewType.CREW_TYPE_DRIVER]: 'driver', - [CrewType.CREW_TYPE_GUNNER]: 'gunner', - [CrewType.CREW_TYPE_LOADER]: 'loader', - [CrewType.CREW_TYPE_RADIOMAN]: 'radioman', + [CrewType.COMMANDER]: 'commander', + [CrewType.DRIVER]: 'driver', + [CrewType.GUNNER]: 'gunner', + [CrewType.LOADER]: 'loader', + [CrewType.RADIOMAN]: 'radioman', // this should never happen... i hope 😢 [CrewType.UNRECOGNIZED]: 'radioman', @@ -474,21 +474,21 @@ type CombatRolesYaml = Record< >; const blitzShellKindToBlitzkit: Record = { - ARMOR_PIERCING: ShellType.SHELL_TYPE_AP, - ARMOR_PIERCING_CR: ShellType.SHELL_TYPE_APCR, - HIGH_EXPLOSIVE: ShellType.SHELL_TYPE_HE, - HOLLOW_CHARGE: ShellType.SHELL_TYPE_HEAT, + ARMOR_PIERCING: ShellType.AP, + ARMOR_PIERCING_CR: ShellType.APCR, + HIGH_EXPLOSIVE: ShellType.HE, + HOLLOW_CHARGE: ShellType.HEAT, }; const missingStrings: Record = { '#artefacts:tungstentip/name': 'Tungsten Shells', }; export const botPattern = /^.+((tutorial_bot(\d+)?)|(TU(R?)))$/; const blitzModuleTypeToBlitzkit: Record = { - chassis: ModuleType.MODULE_TYPE_TRACKS, - engine: ModuleType.MODULE_TYPE_ENGINE, - gun: ModuleType.MODULE_TYPE_GUN, - turret: ModuleType.MODULE_TYPE_TURRET, - vehicle: ModuleType.MODULE_TYPE_VEHICLE, + chassis: ModuleType.TRACKS, + engine: ModuleType.ENGINE, + gun: ModuleType.GUN, + turret: ModuleType.TURRET, + vehicle: ModuleType.VEHICLE, }; export async function definitions() { @@ -524,10 +524,10 @@ export async function definitions() { const provisionDefinitions: ProvisionDefinitions = { provisions: {} }; const skillDefinitions: SkillDefinitions = { classes: { - [TankClass.TANK_CLASS_LIGHT]: { skills: [] }, - [TankClass.TANK_CLASS_MEDIUM]: { skills: [] }, - [TankClass.TANK_CLASS_HEAVY]: { skills: [] }, - [TankClass.TANK_CLASS_TANK_DESTROYER]: { skills: [] }, + [TankClass.LIGHT]: { skills: [] }, + [TankClass.MEDIUM]: { skills: [] }, + [TankClass.HEAVY]: { skills: [] }, + [TankClass.TANK_DESTROYER]: { skills: [] }, }, }; const nations = await readdir(`${DATA}/XML/item_defs/vehicles`).then( @@ -749,17 +749,17 @@ export async function definitions() { if (tank.sellPrice) { tankPrice = { - type: TankPriceType.TANK_PRICE_TYPE_GOLD, + type: TankPriceType.GOLD, value: tank.sellPrice['#text'] * 2, }; } else if (typeof tank.price === 'number') { tankPrice = { - type: TankPriceType.TANK_PRICE_TYPE_CREDITS, + type: TankPriceType.CREDITS, value: tank.price, }; } else { tankPrice = { - type: TankPriceType.TANK_PRICE_TYPE_CREDITS, + type: TankPriceType.CREDITS, value: tank.price['#text'] * 400, }; } @@ -869,10 +869,10 @@ export async function definitions() { nameFull: strings[tank.userString], nation, type: tankTags.includes('collectible') - ? TankType.TANK_TYPE_COLLECTOR + ? TankType.COLLECTOR : (typeof tank.price === 'number' ? false : 'gold' in tank.price) - ? TankType.TANK_TYPE_PREMIUM - : TankType.TANK_TYPE_RESEARCHABLE, + ? TankType.PREMIUM + : TankType.RESEARCHABLE, tier: tank.level as Tier, class: blitzTankClassToBlitzkit[tankTags[0] as BlitzTankClass], testing: tankTags.includes('testTank'), @@ -1398,22 +1398,31 @@ export async function definitions() { if ('minLevel' in includeRaw) { entry.include.push({ - tiers: { min: includeRaw.minLevel, max: includeRaw.maxLevel }, + filterType: { + $case: 'tiers', + tiers: { min: includeRaw.minLevel, max: includeRaw.maxLevel }, + }, }); } else if ('name' in includeRaw) { entry.include.push({ - ids: { - ids: includeRaw.name - .split(' ') - .map((key) => tankStringIdMap[key]), + filterType: { + $case: 'ids', + ids: { + ids: includeRaw.name + .split(' ') + .map((key) => tankStringIdMap[key]), + }, }, }); } else throw new SyntaxError('Unhandled include type'); if (consumable.vehicleFilter?.include.nations) { entry.include.push({ - nations: { - nations: consumable.vehicleFilter.include.nations.split(' '), + filterType: { + $case: 'nations', + nations: { + nations: consumable.vehicleFilter.include.nations.split(' '), + }, }, }); } @@ -1424,31 +1433,40 @@ export async function definitions() { if ('name' in excludeRaw) { entry.exclude!.push({ - ids: { - ids: excludeRaw.name - .split(' ') - .map((key) => tankStringIdMap[key]), + filterType: { + $case: 'ids', + ids: { + ids: excludeRaw.name + .split(' ') + .map((key) => tankStringIdMap[key]), + }, }, }); } else if ('extendedTags' in excludeRaw) { entry.exclude!.push({ - categories: { - categories: excludeRaw.extendedTags - .split(' ') - .map( - (item) => - blitzTankFilterDefinitionCategoryToBlitzkit[ - item as BlitzTankFilterDefinitionCategory - ], - ), + filterType: { + $case: 'categories', + categories: { + categories: excludeRaw.extendedTags + .split(' ') + .map( + (item) => + blitzTankFilterDefinitionCategoryToBlitzkit[ + item as BlitzTankFilterDefinitionCategory + ], + ), + }, }, }); } else throw new SyntaxError('Unhandled exclude type'); if (consumable.vehicleFilter?.exclude?.nations) { entry.exclude!.push({ - nations: { - nations: consumable.vehicleFilter.exclude.nations.split(' '), + filterType: { + $case: 'nations', + nations: { + nations: consumable.vehicleFilter.exclude.nations.split(' '), + }, }, }); } @@ -1480,25 +1498,34 @@ export async function definitions() { if ('minLevel' in includeRaw) { entry.include.push({ - tiers: { - min: includeRaw.minLevel, - max: includeRaw.maxLevel, + filterType: { + $case: 'tiers', + tiers: { + min: includeRaw.minLevel, + max: includeRaw.maxLevel, + }, }, }); } else if ('name' in includeRaw) { entry.include.push({ - ids: { - ids: includeRaw.name - .split(' ') - .map((key) => tankStringIdMap[key]), + filterType: { + $case: 'ids', + ids: { + ids: includeRaw.name + .split(' ') + .map((key) => tankStringIdMap[key]), + }, }, }); } else throw new SyntaxError('Unhandled include type'); if (provision.vehicleFilter?.include.nations) { entry.include.push({ - nations: { - nations: provision.vehicleFilter.include.nations.split(' '), + filterType: { + $case: 'nations', + nations: { + nations: provision.vehicleFilter.include.nations.split(' '), + }, }, }); } @@ -1509,31 +1536,40 @@ export async function definitions() { if ('name' in excludeRaw) { entry.exclude!.push({ - ids: { - ids: excludeRaw.name - .split(' ') - .map((key) => tankStringIdMap[key]), + filterType: { + $case: 'ids', + ids: { + ids: excludeRaw.name + .split(' ') + .map((key) => tankStringIdMap[key]), + }, }, }); } else if ('extendedTags' in excludeRaw) { entry.exclude!.push({ - categories: { - categories: excludeRaw.extendedTags - .split(' ') - .map( - (item) => - blitzTankFilterDefinitionCategoryToBlitzkit[ - item as BlitzTankFilterDefinitionCategory - ], - ), + filterType: { + $case: 'categories', + categories: { + categories: excludeRaw.extendedTags + .split(' ') + .map( + (item) => + blitzTankFilterDefinitionCategoryToBlitzkit[ + item as BlitzTankFilterDefinitionCategory + ], + ), + }, }, }); } else throw new SyntaxError('Unhandled exclude type'); if (provision.vehicleFilter?.exclude?.nations) { entry.exclude!.push({ - nations: { - nations: provision.vehicleFilter.exclude.nations.split(' '), + filterType: { + $case: 'nations', + nations: { + nations: provision.vehicleFilter.exclude.nations.split(' '), + }, }, }); } diff --git a/packages/scripts/src/buildAssets/index.ts b/packages/scripts/src/buildAssets/index.ts index 42061fe8f..1fe29e023 100644 --- a/packages/scripts/src/buildAssets/index.ts +++ b/packages/scripts/src/buildAssets/index.ts @@ -13,7 +13,7 @@ import { boosterIcons } from './boosterIcons'; import { camouflageIcons } from './camouflageIcons'; import { consumableProvisionIcons } from './consumableProvisionIcons'; import { currencies } from './currencies'; -import { tankDefinitions } from './definitions'; +import { definitions } from './definitions'; import { equipmentIcons } from './equipmentIcons'; import { flags } from './flags'; import { gameModeBanners } from './gameModeBanners'; @@ -30,7 +30,7 @@ const methods = [ tankModels, tankArmors, gameModeBanners, - tankDefinitions, + definitions, tankIcons, currencies, skillIcons, diff --git a/packages/scripts/src/protos.ts b/packages/scripts/src/protos.ts index 1416abe8c..4d4746c96 100644 --- a/packages/scripts/src/protos.ts +++ b/packages/scripts/src/protos.ts @@ -30,9 +30,6 @@ const args = [ '--ts_proto_opt=esModuleInterop=true', '--ts_proto_opt=oneof=unions', '--ts_proto_opt=removeEnumPrefix=true', - '--ts_proto_opt=snakeToCamel=false', - '--ts_proto_opt=useOptionals=none', - '--ts_proto_opt=noDefaultsForOptionals=true', '--ts_proto_out=.', ...files.map((file) => `${ROOT}/${file}`), ];