voxelize/world/components/
interactor.rs

1use rapier3d::prelude::{ColliderHandle, RigidBodyHandle};
2use specs::{Component, VecStorage};
3
4/// What makes an entity physical in Voxelize.
5#[derive(Default, Component)]
6#[storage(VecStorage)]
7pub struct InteractorComp(pub RigidBodyHandle, pub ColliderHandle);
8
9impl InteractorComp {
10    /// Create a new interactor component.
11    pub fn new(data: &(RigidBodyHandle, ColliderHandle)) -> Self {
12        Self(data.0.to_owned(), data.1.to_owned())
13    }
14
15    pub fn body_handle(&self) -> &RigidBodyHandle {
16        &self.0
17    }
18
19    pub fn collider_handle(&self) -> &ColliderHandle {
20        &self.1
21    }
22}