use crate::entity::EntityHandle;

pub enum TriggerShape
{
    Sphere
    {
        radius: f32
    },
}

pub enum TriggerFilter
{
    Player,
}

pub enum TriggerState
{
    Idle,
    Inside,
}

pub struct TriggerComponent
{
    pub shape: TriggerShape,
    pub filter: TriggerFilter,
    pub state: TriggerState,
}

#[derive(Clone, Copy, PartialEq, Eq)]
pub enum TriggerEventKind
{
    Entered,
    Exited,
}

#[derive(Clone, Copy)]
pub struct TriggerEvent
{
    pub trigger_entity: EntityHandle,
    pub activator_entity: EntityHandle,
    pub kind: TriggerEventKind,
}
