summaryrefslogtreecommitdiff
path: root/ecs/src/flags.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2024-04-06 15:35:51 +0200
committerHampusM <hampus@hampusmat.com>2024-04-06 16:09:25 +0200
commit6038a5b701ee9ea3bd3b5da50d7d06930cd9a270 (patch)
tree4b00618fd6f8290006dcedb92f15bde20cba93ce /ecs/src/flags.rs
parent97f973d685baf389dcde08044dd3dfb7ba556050 (diff)
refactor(ecs): make stopping into a action
Diffstat (limited to 'ecs/src/flags.rs')
-rw-r--r--ecs/src/flags.rs66
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;