use serde::Deserialize;
use crate::types::disc::Vec3;
#[derive(Debug, Clone, Deserialize)]
pub struct Stats {
pub points: i32,
pub possession_time: f32,
pub interceptions: i32,
pub blocks: i32,
pub steals: i32,
pub catches: i32,
pub passes: i32,
pub saves: i32,
pub goals: i32,
pub stuns: i32,
pub assists: i32,
pub shots_taken: i32,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Transform {
pub position: Vec3,
pub forward: Vec3,
pub left: Vec3,
pub up: Vec3,
}
#[derive(Debug, Clone, Deserialize)]
pub struct HandTransform {
pub pos: Vec3,
pub forward: Vec3,
pub left: Vec3,
pub up: Vec3,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Player {
pub name: String,
pub playerid: i32,
pub userid: u64,
pub number: i32,
pub level: i32,
pub ping: i32,
pub stunned: Option<bool>,
pub invulnerable: Option<bool>,
pub possession: Option<bool>,
pub holding_left: Option<String>,
pub holding_right: Option<String>,
pub blocking: Option<bool>,
pub stats: Option<Stats>,
pub velocity: Option<Vec3>,
pub head: Option<Transform>,
pub body: Option<Transform>,
pub rhand: Option<HandTransform>,
pub lhand: Option<HandTransform>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Team {
pub team: String,
pub possession: Option<bool>,
pub stats: Option<Stats>,
pub players: Option<Vec<Player>>,
}