summaryrefslogtreecommitdiffstats
path: root/src/solar_system/fleet.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/solar_system/fleet.rs')
-rw-r--r--src/solar_system/fleet.rs60
1 files changed, 0 insertions, 60 deletions
diff --git a/src/solar_system/fleet.rs b/src/solar_system/fleet.rs
deleted file mode 100644
index c331cd7..0000000
--- a/src/solar_system/fleet.rs
+++ /dev/null
@@ -1,60 +0,0 @@
-use crate::solar_system::{GRAVITATIONAL_CONSTANT, Kilometers, SolarSystem, body::OrbitalBody, orbit::StaticOrbit};
-use crate::timeman::Second;
-
-pub type FleetId = usize;
-
-pub struct Fleet
-{
- id: FleetId,
- name: String,
-
- position: cgmath::Vector3<Kilometers>,
- velocity: cgmath::Vector3<f32>,
- acceleration: cgmath::Vector3<f32>,
-
- baked_orbit: Option<(f64, StaticOrbit)>,
-}
-
-impl Fleet
-{
- pub fn new(
- id: FleetId,
- name: String)
- -> Self
- {
- Self {
- id,
- name,
- position: cgmath::vec3(0.0, 0.0, 0.0),
- velocity: cgmath::vec3(0.0, 0.0, 0.0),
- acceleration: cgmath::vec3(0.0, 0.0, 0.0),
- baked_orbit: None,
- }
- }
-
- pub fn id(&self) -> FleetId { self.id }
- pub fn name(&self) -> &String { &self.name }
-
- pub fn make_orbit(
- &mut self,
- body: &OrbitalBody,
- radius: Kilometers)
- {
- let sgp = body.mass() * GRAVITATIONAL_CONSTANT;
- self.baked_orbit = Some((sgp, StaticOrbit::new_circular(body, radius)));
- }
-
- pub fn tick(
- &mut self,
- time: Second)
- {
- match &self.baked_orbit {
- Some(orbit_info) => {
- let sgp = orbit_info.0;
- let orbit = &orbit_info.1;
- self.position = orbit.calculate_position_at(sgp, time);
- },
- None => {}
- }
- }
-}