use std::time::Duration;
use bevy_ecs::prelude::*;
use bevy_platform::time::Instant;
use crate::prelude::Progress;
pub fn dummy_system_wait_frames<const N: u32>(
mut count: Local<u32>,
) -> Progress {
*count += 1;
(*count - 1 <= N).into()
}
pub fn dummy_system_count_frames<const N: u32>(
mut count: Local<u32>,
) -> Progress {
if *count <= N {
*count += 1;
}
Progress {
done: *count - 1,
total: N,
}
}
pub fn dummy_system_wait_millis<const MILLIS: u64>(
mut state: Local<Option<Instant>>,
) -> Progress {
let end =
state.unwrap_or_else(|| Instant::now() + Duration::from_millis(MILLIS));
*state = Some(end);
(Instant::now() > end).into()
}