summaryrefslogtreecommitdiff
path: root/src/lunar/systems.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lunar/systems.rs')
-rw-r--r--src/lunar/systems.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/lunar/systems.rs b/src/lunar/systems.rs
index 4cdebdc..81fbbf2 100644
--- a/src/lunar/systems.rs
+++ b/src/lunar/systems.rs
@@ -1,3 +1,5 @@
+use core::f32;
+
use bevy::prelude::*;
use avian2d::prelude::*;
use super::DestPlanet;
@@ -21,26 +23,28 @@ pub fn update_lunar_transform(
let new_transform = lunar_period_to_vec(
lod.period,
lod.orbital_radius).normalize_or_zero() * lod.orbital_radius;
+ // println!("lunar transform: {}", new_transform);
moon_transform.translation = Vec3 {x: new_transform.x, y: new_transform.y, z: 0.0};
- lod.period = dt * lod.orbital_velocity;
+ lod.period += dt * lod.orbital_velocity;
+ lod.period = if lod.period <= 2. * f32::consts::PI { lod.period } else { 0. }
}
pub fn setup_moon(mut cmd: Commands) {
let objective_planet = DestPlanet {
// display_name: String::from("Objective Planet"),
- planet_mass_kg: 50.0,
- radius: 5.0,
+ planet_mass_kg: 50000.0,
+ radius: 30.0,
};
- let lunar_radius = 900.0;
+ let lunar_radius = 225.0;
let r = (&objective_planet).radius;
let m = (&objective_planet).planet_mass_kg;
let initial_transform = lunar_period_to_vec(0., 100.);
cmd.spawn((
objective_planet,
- LunarOrbitalData { period: 0., orbital_velocity: 1., orbital_radius: lunar_radius},
- RigidBody::Dynamic,
+ LunarOrbitalData { period: 0., orbital_velocity: 1.0, orbital_radius: lunar_radius},
+ RigidBody::Static,
Transform::from_xyz(initial_transform.x, initial_transform.y, 0.0),
Sprite::from_color(Color::BLACK, Vec2 { x: 30., y: 30. }),
- Collider::circle(r),
+ Collider::rectangle(r, r),
Mass(m),
));
-} \ No newline at end of file
+}