summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/construction.rs5
-rw-r--r--src/client/engines.rs5
-rw-r--r--src/client/mining.rs5
-rw-r--r--src/client/navigation.rs80
-rw-r--r--src/client/refinery.rs5
-rw-r--r--src/client/tractorbeam.rs5
6 files changed, 46 insertions, 59 deletions
diff --git a/src/client/construction.rs b/src/client/construction.rs
index 8cb812f..8549c09 100644
--- a/src/client/construction.rs
+++ b/src/client/construction.rs
@@ -8,8 +8,7 @@ use std::io::{BufRead, BufReader};
use std::net::TcpStream;
use crate::constants;
-use crate::modules::construction::ConstructionStatus;
-use crate::server::construction::ConstructionData;
+use crate::modules::construction::{ConstructionClientData, ConstructionStatus};
pub fn client_construction(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
let stdout = stdout();
@@ -19,7 +18,7 @@ pub fn client_construction(mut stream: TcpStream, mut buff_r: BufReader<TcpStrea
loop {
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let data: ConstructionData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
+ let data: ConstructionClientData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
write!(stdout, "{}", termion::clear::All).unwrap();
diff --git a/src/client/engines.rs b/src/client/engines.rs
index 32d869a..dc3799b 100644
--- a/src/client/engines.rs
+++ b/src/client/engines.rs
@@ -9,7 +9,7 @@ use std::net::TcpStream;
use std::thread::sleep;
use std::time::Duration;
-use crate::server::engines::EnginesData;
+use crate::modules::engines::EnginesClientData;
pub fn client_engines(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
let stdout = stdout();
@@ -19,7 +19,8 @@ pub fn client_engines(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
loop {
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let engines_data: EnginesData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
+ let engines_data: EnginesClientData =
+ serde_json::from_str(&recv.replace("\n", "")).unwrap();
writeln!(
stdout,
diff --git a/src/client/mining.rs b/src/client/mining.rs
index 5515f3a..84dfcb6 100644
--- a/src/client/mining.rs
+++ b/src/client/mining.rs
@@ -7,8 +7,7 @@ use std::io::{stdout, Read, Write};
use std::io::{BufRead, BufReader};
use std::net::TcpStream;
-use crate::modules::mining::MiningStatus;
-use crate::server::mining::MiningData;
+use crate::modules::mining::{MiningClientData, MiningStatus};
pub fn client_mining(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
let stdout = stdout();
@@ -18,7 +17,7 @@ pub fn client_mining(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
loop {
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let data: MiningData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
+ let data: MiningClientData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
write!(stdout, "{}", termion::clear::All).unwrap();
diff --git a/src/client/navigation.rs b/src/client/navigation.rs
index 43daafb..586ac9e 100644
--- a/src/client/navigation.rs
+++ b/src/client/navigation.rs
@@ -3,15 +3,13 @@ extern crate termion;
use self::termion::async_stdin;
use self::termion::raw::IntoRawMode;
-use std::collections::BTreeMap;
use std::io::{stdout, Read, Write};
use std::io::{BufRead, BufReader};
use std::net::TcpStream;
-use crate::mass::{Mass, MassType};
-use crate::modules::navigation::Navigation;
+use crate::modules::navigation::NavigationClientData;
-pub fn client_navigation(name: String, mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
+pub fn client_navigation(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
let stdout = stdout();
let mut stdout = stdout.lock().into_raw_mode().unwrap();
let mut stdin = async_stdin().bytes();
@@ -19,7 +17,7 @@ pub fn client_navigation(name: String, mut stream: TcpStream, mut buff_r: BufRea
loop {
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let mut within_range: BTreeMap<String, Mass> = serde_json::from_str(&recv).unwrap();
+ let navigation_data: NavigationClientData = serde_json::from_str(&recv).unwrap();
write!(
stdout,
@@ -29,52 +27,44 @@ pub fn client_navigation(name: String, mut stream: TcpStream, mut buff_r: BufRea
)
.unwrap();
- let ship = within_range.remove(&name).unwrap();
-
- if let MassType::Ship { ref navigation, .. } = ship.mass_type {
- for (i, (mass_name, mass)) in within_range.iter().enumerate() {
- let target_data = get_target_status(&navigation, &mass_name);
- write!(
- stdout,
- "{}{}) {} {} Distance : {:.2} {}",
- termion::cursor::Goto(1, 2 + i as u16),
- i,
- mass_name,
- mass.position,
- mass.position.distance_from(ship.position.clone()),
- target_data
- )
- .unwrap();
- }
-
- if let Some(c) = stdin.next() {
- let c = c.unwrap() as char;
- if c == 'q' {
- break;
- } else {
- let i = c.to_digit(10).unwrap() as usize;
- if i < within_range.len() {
- let mut send = String::new();
- send.push_str(within_range.iter().nth(i).unwrap().0);
- send.push_str("\n");
- stream.write_all(send.as_bytes()).unwrap();
+ for (i, (name, position)) in navigation_data.available_targets.iter().enumerate() {
+ let target_status = match &navigation_data.target_name {
+ Some(target_name) => {
+ if target_name == name {
+ serde_json::to_string(&navigation_data.status).unwrap()
+ } else {
+ String::new()
}
}
- }
+ None => String::new(),
+ };
+ write!(
+ stdout,
+ "{}{}) {} {} Distance : {:.2} {}",
+ termion::cursor::Goto(1, 2 + i as u16),
+ i,
+ name,
+ position,
+ position.distance_from(navigation_data.ship_position.clone()),
+ target_status
+ )
+ .unwrap();
}
- stdout.flush().unwrap();
- }
-}
-fn get_target_status(navigation: &Navigation, mass_name: &str) -> String {
- match navigation.target_name.clone() {
- Some(name) => {
- if name == mass_name {
- serde_json::to_string(&navigation.status).unwrap()
+ if let Some(c) = stdin.next() {
+ let c = c.unwrap() as char;
+ if c == 'q' {
+ break;
} else {
- String::new()
+ let i = c.to_digit(10).unwrap() as usize;
+ if i < navigation_data.available_targets.len() {
+ let mut send = String::new();
+ send.push_str(&navigation_data.available_targets[i].0);
+ send.push_str("\n");
+ stream.write_all(send.as_bytes()).unwrap();
+ }
}
}
- None => String::new(),
+ stdout.flush().unwrap();
}
}
diff --git a/src/client/refinery.rs b/src/client/refinery.rs
index a3ae6f4..a977e04 100644
--- a/src/client/refinery.rs
+++ b/src/client/refinery.rs
@@ -7,8 +7,7 @@ use std::io::{stdout, Read, Write};
use std::io::{BufRead, BufReader};
use std::net::TcpStream;
-use crate::modules::refinery::RefineryStatus;
-use crate::server::refinery::RefineryData;
+use crate::modules::refinery::{RefineryClientData, RefineryStatus};
pub fn client_refinery(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
let stdout = stdout();
@@ -18,7 +17,7 @@ pub fn client_refinery(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>)
loop {
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let data: RefineryData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
+ let data: RefineryClientData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
write!(stdout, "{}", termion::clear::All).unwrap();
diff --git a/src/client/tractorbeam.rs b/src/client/tractorbeam.rs
index e9e60b2..16508b5 100644
--- a/src/client/tractorbeam.rs
+++ b/src/client/tractorbeam.rs
@@ -7,8 +7,7 @@ use std::io::{stdout, Read, Write};
use std::io::{BufRead, BufReader};
use std::net::TcpStream;
-use crate::modules::tractorbeam::TractorbeamStatus;
-use crate::server::tractorbeam::TractorbeamData;
+use crate::modules::tractorbeam::{TractorbeamClientData, TractorbeamStatus};
pub fn client_tractorbeam(mut stream: TcpStream, mut buff_r: BufReader<TcpStream>) {
let stdout = stdout();
@@ -18,7 +17,7 @@ pub fn client_tractorbeam(mut stream: TcpStream, mut buff_r: BufReader<TcpStream
loop {
let mut recv = String::new();
buff_r.read_line(&mut recv).unwrap();
- let data: TractorbeamData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
+ let data: TractorbeamClientData = serde_json::from_str(&recv.replace("\n", "")).unwrap();
write!(stdout, "{}", termion::clear::All).unwrap();