~starkingdoms/starkingdoms

ref: a2ff8f1ebb1deb91542e24cb73a025ef85253390 starkingdoms/crates/unified/src/clientevent.rs -rw-r--r-- 889 bytes
a2ff8f1e — core feat: drag 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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),
        }
    }
}