use specs_blit::{
specs::{Component, DenseVecStorage, Join, ReadStorage, System, Write},
PixelBuffer,
};
#[derive(Component, Debug, Default)]
pub struct ScreenFlash(u32);
impl ScreenFlash {
pub fn new(color: u32) -> Self {
Self(color)
}
}
pub struct ScreenFlashSystem;
impl<'a> System<'a> for ScreenFlashSystem {
type SystemData = (Write<'a, PixelBuffer>, ReadStorage<'a, ScreenFlash>);
fn run(&mut self, (mut buffer, flash): Self::SystemData) {
for flash in flash.join() {
buffer.clear(flash.0)
}
}
}