use bevy::ecs::entity::MapEntities;
use bevy::math::Vec2;
use bevy::prelude::{Entity, EntityMapper, Event};
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Event, Serialize, Clone)]
pub struct PartDragEvent(pub Entity, pub Vec2);
impl MapEntities for PartDragEvent {
fn map_entities<E: EntityMapper>(&mut self, entity_mapper: &mut E) {
self.0 = entity_mapper.get_mapped(self.0);
}
}
#[derive(Debug, Deserialize, Event, Serialize, Clone)]
pub enum PartDragControlEvent {
Start(Entity),
Stop(Entity)
}
impl MapEntities for PartDragControlEvent {
fn map_entities<E: EntityMapper>(&mut self, entity_mapper: &mut E) {
match self {
PartDragControlEvent::Start(entity) => *entity = entity_mapper.get_mapped(*entity),
PartDragControlEvent::Stop(entity) => *entity = entity_mapper.get_mapped(*entity),
}
}
}