mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
47 lines
890 B
Rust
47 lines
890 B
Rust
use crate::{RtState, Rule};
|
|
use common::{
|
|
mounting::VolumePos,
|
|
resources::{Time, TimeOfDay},
|
|
rtsim::{Actor, NpcId},
|
|
};
|
|
use vek::*;
|
|
use world::{IndexRef, World};
|
|
|
|
pub trait Event: Clone + 'static {}
|
|
|
|
pub struct EventCtx<'a, R: Rule, E: Event> {
|
|
pub state: &'a RtState,
|
|
pub rule: &'a mut R,
|
|
pub event: &'a E,
|
|
pub world: &'a World,
|
|
pub index: IndexRef<'a>,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct OnSetup;
|
|
impl Event for OnSetup {}
|
|
|
|
#[derive(Clone)]
|
|
pub struct OnTick {
|
|
pub time_of_day: TimeOfDay,
|
|
pub time: Time,
|
|
pub tick: u64,
|
|
pub dt: f32,
|
|
}
|
|
impl Event for OnTick {}
|
|
|
|
#[derive(Clone)]
|
|
pub struct OnDeath {
|
|
pub actor: Actor,
|
|
pub wpos: Option<Vec3<f32>>,
|
|
pub killer: Option<Actor>,
|
|
}
|
|
impl Event for OnDeath {}
|
|
|
|
#[derive(Clone)]
|
|
pub struct OnMountVolume {
|
|
pub actor: Actor,
|
|
pub pos: VolumePos<NpcId>,
|
|
}
|
|
impl Event for OnMountVolume {}
|