use glam::Vec3;

#[derive(Default)]
pub struct IdleState
{
    pub time_in_state: f32,
}

#[derive(Default)]
pub struct WalkingState
{
    pub time_in_state: f32,
}

#[derive(Default)]
pub struct JumpingState
{
    pub time_in_state: f32,
}

#[derive(Default)]
pub struct FallingState
{
    pub time_in_state: f32,
}

pub struct LeapingState
{
    pub time_in_state: f32,
    pub leap_direction: Vec3,
}

impl Default for LeapingState
{
    fn default() -> Self
    {
        Self {
            time_in_state: 0.0,
            leap_direction: Vec3::Z,
        }
    }
}

pub struct RollingState
{
    pub time_in_state: f32,
    pub roll_direction: Vec3,
}

impl Default for RollingState
{
    fn default() -> Self
    {
        Self {
            time_in_state: 0.0,
            roll_direction: Vec3::Z,
        }
    }
}
