syntax = "proto2"; package blitzkit; message ModelDefinitions { map models = 1; } message ModelDefinition { required Armor armor = 1; required Vector3 turret_origin = 2; optional InitialTurretRotation initial_turret_rotation = 3; map turrets = 4; map tracks = 5; required BoundingBox bounding_box = 6; } message Armor { map thickness = 1; repeated uint32 spaced = 2; } message Vector3 { required float x = 1; required float y = 2; required float z = 3; } message InitialTurretRotation { required float yaw = 1; required float pitch = 2; required float roll = 3; } message TurretModelDefinition { 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 { required float min = 1; required float max = 2; } message BoundingBox { required Vector3 min = 1; required Vector3 max = 2; } message TrackModelDefinition { required float thickness = 1; required Vector3 origin = 2; } message GunModelDefinition { required Armor armor = 1; required float thickness = 2; required uint32 model_id = 3; required PitchLimits pitch = 4; optional float mask = 5; } message PitchLimits { required float min = 1; required float max = 2; optional PitchLimitsExtrema front = 3; optional PitchLimitsExtrema back = 4; optional float transition = 5; } message PitchLimitsExtrema { required float min = 1; required float max = 2; required float range = 3; }