diff options
| author | HampusM <hampus@hampusmat.com> | 2024-04-06 15:35:51 +0200 | 
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2024-04-06 16:09:25 +0200 | 
| commit | 6038a5b701ee9ea3bd3b5da50d7d06930cd9a270 (patch) | |
| tree | 4b00618fd6f8290006dcedb92f15bde20cba93ce /ecs/src/flags.rs | |
| parent | 97f973d685baf389dcde08044dd3dfb7ba556050 (diff) | |
refactor(ecs): make stopping into a action
Diffstat (limited to 'ecs/src/flags.rs')
| -rw-r--r-- | ecs/src/flags.rs | 66 | 
1 files changed, 0 insertions, 66 deletions
| diff --git a/ecs/src/flags.rs b/ecs/src/flags.rs deleted file mode 100644 index ad10a0f..0000000 --- a/ecs/src/flags.rs +++ /dev/null @@ -1,66 +0,0 @@ -use std::any::Any; - -use crate::lock::WriteGuard; -use crate::system::{ -    NoInitParamFlag as NoInitSystemParamFlag, -    Param as SystemParam, -    System, -}; -use crate::tuple::FilterExclude as TupleFilterExclude; -use crate::{WorldData, WorldFlags}; - -#[derive(Debug)] -pub struct Flags<'world> -{ -    world_flags: WriteGuard<'world, WorldFlags>, -} - -impl<'world> Flags<'world> -{ -    /// Calling this function makes the loop in [`Engine::event_loop`] stop at the next -    /// opportune time. -    pub fn stop(&mut self) -    { -        self.world_flags.stop = true; -    } -} - -unsafe impl<'world> SystemParam<'world> for Flags<'world> -{ -    type Flags = NoInitSystemParamFlag; -    type Input = TupleFilterExclude; - -    fn initialize<SystemImpl>( -        _system: &mut impl System<'world, SystemImpl>, -        _input: Self::Input, -    ) -    { -    } - -    fn new<SystemImpl>( -        _system: &'world impl System<'world, SystemImpl>, -        world_data: &'world WorldData, -    ) -> Self -    { -        Self { -            world_flags: world_data -                .flags -                .write_nonblock() -                .expect("Failed to acquire read-write world flags lock"), -        } -    } - -    fn is_compatible<Other: SystemParam<'world>>() -> bool -    { -        let other_comparable = Other::get_comparable(); - -        other_comparable.downcast_ref::<Comparable>().is_none() -    } - -    fn get_comparable() -> Box<dyn Any> -    { -        Box::new(Comparable) -    } -} - -struct Comparable; | 
