From 20d2ab63c46d97a9dcc4df848dd728419d0031f9 Mon Sep 17 00:00:00 2001 From: tom barrett Date: Thu, 5 Apr 2018 08:58:01 -0500 Subject: -changed how everything is referenced by its name now, instead of the index, -also added targeting status to the navigation panel --- src/connection.rs | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'src/connection.rs') diff --git a/src/connection.rs b/src/connection.rs index f0b3c25..954cd27 100644 --- a/src/connection.rs +++ b/src/connection.rs @@ -9,7 +9,7 @@ use mass::Mass; use module::Module; pub struct Connection { - pub index : usize, + pub name : String, pub module : Module, pub stream : TcpStream, pub buff_r : BufReader, @@ -24,17 +24,15 @@ impl Connection { buff_r.read_line(&mut data).unwrap(); let name = &data[..data.find(":").unwrap()]; - let result = masses.into_iter().position(|ship| ship.name() == name); - let index = match result { - Some(index) => index, - None => { - let ship = Box::new(Ship::new(name, (0.0, 0.0, 0.0))); - masses.push(ship); - masses.len() - 1 - }, - }; + match masses.iter().find(|ship| ship.name() == name).is_some() { + false => masses.push(Box::new(Ship::new(name, (0.0, 0.0, 0.0)))), + _ => (), + } + + let mass = masses.iter().find(|ship| ship.name() == name).unwrap(); + let ship = mass.downcast_ref::().unwrap(); - let modules = masses[index].downcast_ref::().unwrap().get_modules(); + let modules = ship.get_modules(); stream.write(modules.as_bytes()).unwrap(); let mut data = String::new(); @@ -44,7 +42,7 @@ impl Connection { stream.set_nonblocking(true).unwrap(); Connection { - index : index, + name : String::from(name), module : module, stream : stream, buff_r : buff_r, -- cgit v1.2.3