pong-cli 1.0.1

Play pong from the command-line!
Documentation
use super::system_prelude::*;

#[derive(Default)]
pub struct ControlPaddlesSystem;

impl<'a> System<'a> for ControlPaddlesSystem {
    type SystemData = (
        ReadExpect<'a, InputManager>,
        ReadStorage<'a, PaddleAi>,
        WriteStorage<'a, Paddle>,
    );

    fn run(
        &mut self,
        (input_manager, paddle_ais, mut paddles): Self::SystemData,
    ) {
        for (paddle, _) in (&mut paddles, !&paddle_ais).join() {
            if input_manager.is_pressed(InputKey::PaddleUp(paddle.side)) {
                paddle.move_up();
            }
            if input_manager.is_pressed(InputKey::PaddleDown(paddle.side)) {
                paddle.move_down();
            }
        }
    }
}