This commit is contained in:
tresabhi committed 2026-09-27 17:24:48 -05:00
1 parent 593ae760e7
commit 1c382022a7
15 files changed
+209 -202

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
---
name: proto-workflow
description: Regenerate this repository's TypeScript protobuf outputs after editing .proto schemas.
---
# Proto Workflow
After editing any `.proto` schema in this repository, run `bun run build-protos` from the repository root. Review the generated changes and address any schema or generator errors before finishing the task.
@@ -1,47 +1,47 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
message AverageDefinitions { message AverageDefinitions {
map<uint32, AverageDefinitionsEntry> averages = 1; map<uint32, AverageDefinitionsEntry> averages = 1;
required Samples samples = 2; Samples samples = 2;
required uint64 time = 3; uint64 time = 3;
} }
message AverageDefinitionsEntry { message AverageDefinitionsEntry {
required AverageDefinitionsAllStats mu = 1; AverageDefinitionsAllStats mu = 1;
required AverageDefinitionsAllStats sigma = 2; AverageDefinitionsAllStats sigma = 2;
required AverageDefinitionsAllStats r = 3; AverageDefinitionsAllStats r = 3;
required Samples samples = 4; Samples samples = 4;
} }
message AverageDefinitionsAllStats { message AverageDefinitionsAllStats {
required float battles = 1; float battles = 1;
required float capture_points = 2; float capture_points = 2;
required float damage_dealt = 3; float damage_dealt = 3;
required float damage_received = 4; float damage_received = 4;
required float dropped_capture_points = 5; float dropped_capture_points = 5;
required float frags = 6; float frags = 6;
required float frags8p = 7; float frags8p = 7;
required float hits = 8; float hits = 8;
required float losses = 9; float losses = 9;
required float max_frags = 10; float max_frags = 10;
required float max_xp = 11; float max_xp = 11;
required float shots = 12; float shots = 12;
required float spotted = 13; float spotted = 13;
required float survived_battles = 14; float survived_battles = 14;
required float win_and_survived = 15; float win_and_survived = 15;
required float wins = 16; float wins = 16;
required float xp = 17; float xp = 17;
required float battle_life_time = 18; float battle_life_time = 18;
} }
message Samples { message Samples {
required uint32 d_1 = 1; uint32 d_1 = 1;
required uint32 d_7 = 2; uint32 d_7 = 2;
required uint32 d_30 = 3; uint32 d_30 = 3;
required uint32 d_60 = 4; uint32 d_60 = 4;
required uint32 d_90 = 5; uint32 d_90 = 5;
required uint32 d_120 = 6; uint32 d_120 = 6;
required uint32 total = 7; uint32 total = 7;
} }
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -9,8 +9,8 @@ message CamouflageDefinitions {
} }
message Camouflage { message Camouflage {
required uint32 id = 1; uint32 id = 1;
required I18nString name = 2; I18nString name = 2;
optional I18nString tank_name = 3; optional I18nString tank_name = 3;
optional I18nString tank_name_full = 4; optional I18nString tank_name_full = 4;
} }
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -9,9 +9,9 @@ message ConsumableDefinitions {
} }
message Consumable { message Consumable {
required uint32 id = 1; uint32 id = 1;
required I18nString name = 2; I18nString name = 2;
required bool game_mode_exclusive = 5; bool game_mode_exclusive = 5;
repeated TankInclusivityFilter include = 6; repeated TankInclusivityFilter include = 6;
repeated TankInclusivityFilter exclude = 7; repeated TankInclusivityFilter exclude = 7;
} }
@@ -26,8 +26,8 @@ message TankInclusivityFilter {
} }
message ConsumableTankTierFilter { message ConsumableTankTierFilter {
required uint32 min = 1; uint32 min = 1;
required uint32 max = 2; uint32 max = 2;
} }
message ConsumableTankIdsFilter { message ConsumableTankIdsFilter {
+4 -4
View File
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -9,7 +9,7 @@ message Gallery {
} }
message Avatar { message Avatar {
required string id = 1; string id = 1;
required I18nString name = 2; I18nString name = 2;
required string extension = 3; string extension = 3;
} }
@@ -1,18 +1,18 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
import "i18n.proto"; import "i18n.proto";
message GameDefinitions { message GameDefinitions {
required string version = 1; string version = 1;
repeated string nations = 2; repeated string nations = 2;
map<string, GameMode> gameModes = 3; map<string, GameMode> gameModes = 3;
map<uint32, GameModeRole> roles = 4; map<uint32, GameModeRole> roles = 4;
} }
message GameMode { message GameMode {
required I18nString name = 1; I18nString name = 1;
} }
message GameModeRole { message GameModeRole {
+1 -1
View File
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -9,6 +9,6 @@ message MapDefinitions {
} }
message MapDefinition { message MapDefinition {
required uint32 id = 1; uint32 id = 1;
required I18nString name = 2; I18nString name = 2;
} }
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -7,12 +7,12 @@ message ModelDefinitions {
} }
message ModelDefinition { message ModelDefinition {
required Armor armor = 1; Armor armor = 1;
required Vector3 turret_origin = 2; Vector3 turret_origin = 2;
optional InitialTurretRotation initial_turret_rotation = 3; optional InitialTurretRotation initial_turret_rotation = 3;
map<uint32, TurretModelDefinition> turrets = 4; map<uint32, TurretModelDefinition> turrets = 4;
map<uint32, TrackModelDefinition> tracks = 5; map<uint32, TrackModelDefinition> tracks = 5;
required BoundingBox bounding_box = 6; BoundingBox bounding_box = 6;
} }
message Armor { message Armor {
@@ -21,59 +21,59 @@ message Armor {
} }
message Vector3 { message Vector3 {
required float x = 1; float x = 1;
required float y = 2; float y = 2;
required float z = 3; float z = 3;
} }
message InitialTurretRotation { message InitialTurretRotation {
required float yaw = 1; float yaw = 1;
required float pitch = 2; float pitch = 2;
required float roll = 3; float roll = 3;
} }
message TurretModelDefinition { message TurretModelDefinition {
required BoundingBox bounding_box = 1; BoundingBox bounding_box = 1;
required Armor armor = 2; Armor armor = 2;
required uint32 model_id = 3; uint32 model_id = 3;
required Vector3 gun_origin = 4; Vector3 gun_origin = 4;
map<uint32, GunModelDefinition> guns = 5; map<uint32, GunModelDefinition> guns = 5;
optional YawLimits yaw = 6; optional YawLimits yaw = 6;
} }
message YawLimits { message YawLimits {
required float min = 1; float min = 1;
required float max = 2; float max = 2;
} }
message BoundingBox { message BoundingBox {
required Vector3 min = 1; Vector3 min = 1;
required Vector3 max = 2; Vector3 max = 2;
} }
message TrackModelDefinition { message TrackModelDefinition {
required float thickness = 1; float thickness = 1;
required Vector3 origin = 2; Vector3 origin = 2;
} }
message GunModelDefinition { message GunModelDefinition {
required Armor armor = 1; Armor armor = 1;
required float thickness = 2; float thickness = 2;
required uint32 model_id = 3; uint32 model_id = 3;
required PitchLimits pitch = 4; PitchLimits pitch = 4;
optional float mask = 5; optional float mask = 5;
} }
message PitchLimits { message PitchLimits {
required float min = 1; float min = 1;
required float max = 2; float max = 2;
optional PitchLimitsExtrema front = 3; optional PitchLimitsExtrema front = 3;
optional PitchLimitsExtrema back = 4; optional PitchLimitsExtrema back = 4;
optional float transition = 5; optional float transition = 5;
} }
message PitchLimitsExtrema { message PitchLimitsExtrema {
required float min = 1; float min = 1;
required float max = 2; float max = 2;
required float range = 3; float range = 3;
} }
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -7,6 +7,6 @@ message PopularTanks {
} }
message PopularTank { message PopularTank {
required uint32 id = 1; uint32 id = 1;
required uint32 views = 2; // views in the last 7 days uint32 views = 2; // views in the last 7 days
} }
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -10,11 +10,10 @@ message ProvisionDefinitions {
} }
message Provision { message Provision {
reserved 3; // crew
required uint32 id = 1; uint32 id = 1;
required I18nString name = 2; I18nString name = 2;
required bool game_mode_exclusive = 5; bool game_mode_exclusive = 3;
repeated TankInclusivityFilter include = 6; repeated TankInclusivityFilter include = 4;
repeated TankInclusivityFilter exclude = 7; repeated TankInclusivityFilter exclude = 5;
} }
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -14,8 +14,8 @@ message RatingLeaderboardV1 {
} }
message RatingLeaderboardEntryV1 { message RatingLeaderboardEntryV1 {
required uint32 id = 1; uint32 id = 1;
required uint32 score = 2; uint32 score = 2;
} }
message RatingLeaderboardV2 { message RatingLeaderboardV2 {
@@ -23,11 +23,11 @@ message RatingLeaderboardV2 {
} }
message RatingLeaderboardEntryV2 { message RatingLeaderboardEntryV2 {
required uint32 id = 1; uint32 id = 1;
required uint32 score = 2; uint32 score = 2;
required uint32 battles = 3; uint32 battles = 3;
required uint32 wins = 4; uint32 wins = 4;
required uint32 survived = 5; uint32 survived = 5;
required uint32 damage = 6; uint32 damage = 6;
required uint32 kills = 7; uint32 kills = 7;
} }
+4 -4
View File
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -7,11 +7,11 @@ message Reviews {
} }
message Review { message Review {
required float last_updated = 1; float last_updated = 1;
repeated Video videos = 2; repeated Video videos = 2;
} }
message Video { message Video {
required string id = 1; string id = 1;
required string author = 2; string author = 2;
} }
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -1,4 +1,4 @@
syntax = "proto2"; syntax = "proto3";
package blitzkit; package blitzkit;
@@ -9,46 +9,46 @@ message TankDefinitions {
} }
message TankDefinition { message TankDefinition {
required uint32 id = 1; uint32 id = 1;
required string slug = 2; string slug = 2;
map<string, uint32> roles = 3; map<string, uint32> roles = 3;
required bool fixed_camouflage = 5; bool fixed_camouflage = 5;
repeated int32 camouflages = 6; repeated int32 camouflages = 6;
repeated int32 ancestors = 7; repeated int32 ancestors = 7;
repeated int32 successors = 8; repeated int32 successors = 8;
repeated Crew crew = 9; repeated Crew crew = 9;
required uint32 health = 10; uint32 health = 10;
required string nation = 11; string nation = 11;
required I18nString name = 12; I18nString name = 12;
required TankType type = 13; TankType type = 13;
required uint32 max_consumables = 14; uint32 max_consumables = 14;
required uint32 max_provisions = 15; uint32 max_provisions = 15;
required uint32 tier = 16; uint32 tier = 16;
required TankClass class = 17; TankClass class = 17;
required bool testing = 18; bool testing = 18;
required bool deprecated = 19; bool deprecated = 19;
repeated TurretDefinition turrets = 20; repeated TurretDefinition turrets = 20;
repeated EngineDefinition engines = 21; repeated EngineDefinition engines = 21;
repeated TrackDefinition tracks = 22; repeated TrackDefinition tracks = 22;
required TankPrice price = 23; TankPrice price = 23;
optional ResearchCost research_cost = 24; optional ResearchCost research_cost = 24;
required float speed_forwards = 25; float speed_forwards = 25;
required float speed_backwards = 26; float speed_backwards = 26;
required float camouflage_still = 27; float camouflage_still = 27;
required float camouflage_moving = 28; float camouflage_moving = 28;
required float camouflage_on_fire = 29; float camouflage_on_fire = 29;
required string equipment_preset = 30; string equipment_preset = 30;
required uint32 weight = 31; uint32 weight = 31;
required string dev_name = 32; string dev_name = 32;
optional Equalizer equalizer = 33; optional Equalizer equalizer = 33;
} }
message Equalizer { message Equalizer {
required float health = 1; float health = 1;
required float penetration = 2; float penetration = 2;
required float module_health = 3; float module_health = 3;
required float damage = 4; float damage = 4;
required float armor = 5; float armor = 5;
} }
message ResearchCost { message ResearchCost {
@@ -59,8 +59,8 @@ message ResearchCost {
} }
message ResearchCostSeasonalTokens { message ResearchCostSeasonalTokens {
required uint32 season = 1; uint32 season = 1;
required uint32 tokens = 2; uint32 tokens = 2;
} }
enum TankPriceType { enum TankPriceType {
@@ -69,45 +69,45 @@ enum TankPriceType {
} }
message TankPrice { message TankPrice {
required TankPriceType type = 1; TankPriceType type = 1;
required uint32 value = 2; uint32 value = 2;
} }
message TrackDefinition { message TrackDefinition {
required uint32 id = 1; uint32 id = 1;
required uint32 tier = 2; uint32 tier = 2;
required I18nString name = 3; I18nString name = 3;
required uint32 weight = 4; uint32 weight = 4;
required float traverse_speed = 5; float traverse_speed = 5;
optional ResearchCost research_cost = 6; optional ResearchCost research_cost = 6;
required float dispersion_move = 7; float dispersion_move = 7;
required float dispersion_traverse = 8; float dispersion_traverse = 8;
required float resistance_hard = 9; float resistance_hard = 9;
required float resistance_medium = 10; float resistance_medium = 10;
required float resistance_soft = 11; float resistance_soft = 11;
repeated Unlock unlocks = 12; repeated Unlock unlocks = 12;
} }
message EngineDefinition { message EngineDefinition {
required uint32 id = 1; uint32 id = 1;
required I18nString name = 2; I18nString name = 2;
optional ResearchCost research_cost = 3; optional ResearchCost research_cost = 3;
required uint32 tier = 4; uint32 tier = 4;
required float fire_chance = 5; float fire_chance = 5;
required uint32 power = 6; uint32 power = 6;
required uint32 weight = 7; uint32 weight = 7;
repeated Unlock unlocks = 8; repeated Unlock unlocks = 8;
} }
message TurretDefinition { message TurretDefinition {
required uint32 id = 1; uint32 id = 1;
required uint32 health = 2; uint32 health = 2;
required uint32 view_range = 3; uint32 view_range = 3;
required float traverse_speed = 4; float traverse_speed = 4;
optional ResearchCost research_cost = 5; optional ResearchCost research_cost = 5;
required I18nString name = 6; I18nString name = 6;
required uint32 tier = 7; uint32 tier = 7;
required uint32 weight = 8; uint32 weight = 8;
repeated GunDefinition guns = 9; repeated GunDefinition guns = 9;
repeated Unlock unlocks = 10; repeated Unlock unlocks = 10;
} }
@@ -119,44 +119,44 @@ message GunDefinition {
GunDefinitionAutoReloader auto_reloader = 3; GunDefinitionAutoReloader auto_reloader = 3;
} }
required uint32 id = 4; uint32 id = 4;
required float rotation_speed = 5; float rotation_speed = 5;
optional ResearchCost research_cost = 6; optional ResearchCost research_cost = 6;
required uint32 weight = 7; uint32 weight = 7;
required I18nString name = 8; I18nString name = 8;
required uint32 tier = 9; uint32 tier = 9;
repeated ShellDefinition shells = 10; repeated ShellDefinition shells = 10;
required float camouflage_loss = 11; float camouflage_loss = 11;
required float aim_time = 12; float aim_time = 12;
required float dispersion_base = 13; float dispersion_base = 13;
required float dispersion_traverse = 14; float dispersion_traverse = 14;
required float dispersion_shot = 15; float dispersion_shot = 15;
required float dispersion_damaged = 16; float dispersion_damaged = 16;
repeated Unlock unlocks = 17; repeated Unlock unlocks = 17;
required uint32 shell_capacity = 18; uint32 shell_capacity = 18;
optional AssaultRanges assault_ranges = 19; optional AssaultRanges assault_ranges = 19;
optional Burst burst = 20; optional Burst burst = 20;
} }
message GunDefinitionRegular { message GunDefinitionRegular {
required float reload = 1; float reload = 1;
} }
message GunDefinitionAutoLoader { message GunDefinitionAutoLoader {
required float clip_reload = 1; float clip_reload = 1;
required float intra_clip = 2; float intra_clip = 2;
required float shell_count = 3; float shell_count = 3;
} }
message Burst { message Burst {
required uint32 count = 1; uint32 count = 1;
required float interval = 2; float interval = 2;
} }
message GunDefinitionAutoReloader { message GunDefinitionAutoReloader {
repeated float shell_reloads = 1; repeated float shell_reloads = 1;
required float intra_clip = 2; float intra_clip = 2;
required float shell_count = 3; float shell_count = 3;
} }
message AssaultRanges { message AssaultRanges {
@@ -165,24 +165,24 @@ message AssaultRanges {
} }
message AssaultRange { message AssaultRange {
required float distance = 1; float distance = 1;
required float factor = 2; float factor = 2;
} }
message ShellDefinition { message ShellDefinition {
required uint32 id = 1; uint32 id = 1;
required I18nString name = 2; I18nString name = 2;
required uint32 velocity = 3; uint32 velocity = 3;
required uint32 armor_damage = 4; uint32 armor_damage = 4;
required uint32 module_damage = 5; uint32 module_damage = 5;
required float caliber = 6; float caliber = 6;
required string icon = 7; string icon = 7;
required ShellPenetration penetration = 8; ShellPenetration penetration = 8;
required ShellType type = 9; ShellType type = 9;
optional float normalization = 10; optional float normalization = 10;
optional float ricochet = 11; optional float ricochet = 11;
optional float explosion_radius = 12; optional float explosion_radius = 12;
required uint32 range = 13; uint32 range = 13;
} }
enum ShellType { enum ShellType {
@@ -193,19 +193,19 @@ enum ShellType {
} }
message ShellPenetration { message ShellPenetration {
required float near = 1; float near = 1;
required float far = 2; float far = 2;
} }
message Unlock { message Unlock {
required int32 id = 1; int32 id = 1;
required ModuleType type = 2; ModuleType type = 2;
required UnlockCost cost = 3; UnlockCost cost = 3;
} }
message UnlockCost { message UnlockCost {
required string type = 1; string type = 1;
required int32 value = 2; int32 value = 2;
} }
enum ModuleType { enum ModuleType {
@@ -230,8 +230,8 @@ enum TankType {
} }
message Crew { message Crew {
required CrewType type = 1; CrewType type = 1;
required uint32 count = 2; uint32 count = 2;
repeated CrewType substitute = 3; repeated CrewType substitute = 3;
} }