From 160d7b6e50df6d818f6882c033398d49193bd804 Mon Sep 17 00:00:00 2001 From: tom barrett Date: Mon, 5 Mar 2018 08:14:14 -0600 Subject: -brought back downcasting, moved connection functions inside the structure --- src/engines.rs | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) (limited to 'src/engines.rs') diff --git a/src/engines.rs b/src/engines.rs index d320c9d..e951856 100644 --- a/src/engines.rs +++ b/src/engines.rs @@ -4,10 +4,11 @@ use termion::async_stdin; use std::thread::sleep; use std::io::{Read, Write, stdout}; use std::time::Duration; -use std::io::BufReader; use std::io::BufRead; +use ship::Ship; use mass::Mass; +use connection::Connection; pub fn client_engines(mut stream : TcpStream) { let stdout = stdout(); @@ -34,26 +35,29 @@ pub fn client_engines(mut stream : TcpStream) { } } -pub fn server_engines(ship : &mut Box, buff_r : &mut BufReader) -> bool { - let mut acceleration = (0.0, 0.0, 0.0); - let mut data = String::new(); - match buff_r.read_line(&mut data) { - Ok(result) => match data.as_bytes() { - b"5\n" => acceleration.0 += 0.1, - b"0\n" => acceleration.0 -= 0.1, - b"8\n" => acceleration.1 += 0.1, - b"2\n" => acceleration.1 -= 0.1, - b"4\n" => acceleration.2 += 0.1, - b"6\n" => acceleration.2 -= 0.1, - b"-\n" => ship.slow(), - _ => { - if result == 0 { - return false - } +impl Connection { + pub fn server_engines(&mut self, masses : &mut Vec>) -> bool { + let ship = masses[self.index].downcast_mut::().unwrap(); + let mut acceleration = (0.0, 0.0, 0.0); + let mut data = String::new(); + match self.buff_r.read_line(&mut data) { + Ok(result) => match data.as_bytes() { + b"5\n" => acceleration.0 += 0.1, + b"0\n" => acceleration.0 -= 0.1, + b"8\n" => acceleration.1 += 0.1, + b"2\n" => acceleration.1 -= 0.1, + b"4\n" => acceleration.2 += 0.1, + b"6\n" => acceleration.2 -= 0.1, + b"-\n" => ship.slow(), + _ => { + if result == 0 { + return false + } + }, }, - }, - Err(_error) => (), + Err(_error) => (), + } + ship.give_acceleration(acceleration); + true } - ship.give_acceleration(acceleration); - true } -- cgit v1.2.3