use crate::math::*;
use serde::*;
use wings::*;
#[system_trait(host)]
pub trait Player: 'static {
fn delete_voxels_at(&self, position: IVec3);
fn drag_physics_object(&self, operation: Option<DragEntity>);
fn get_transform(&self) -> Transform;
fn place_voxels_at(&self, position: IVec3, shape_index: u32);
fn set_transform(&mut self, transform: Transform);
fn spawn_physics_object(&self, position: WorldVec, kind_index: u32);
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct DragEntity {
pub contact_point: Vec3A,
pub id: u64,
pub target_position: WorldVec,
}