mod altitude;
mod cache;
mod disc;
mod kinematics;
mod movement;
mod obstacles;
mod pathing;
mod repulsion;
mod syncing;
use std::f32::consts::PI;
use altitude::AltitudePlugin;
use bevy::{app::PluginGroupBuilder, prelude::PluginGroup};
use kinematics::KinematicsPlugin;
use movement::MovementPlugin;
use obstacles::ObstaclesPlugin;
use pathing::PathingPlugin;
use repulsion::RepulsionPlugin;
use syncing::SyncingPlugin;
const MAX_H_SPEED: f32 = 10.;
const MAX_V_SPEED: f32 = 4.;
const MAX_H_ACCELERATION: f32 = 2. * MAX_H_SPEED;
const G_ACCELERATION: f32 = 9.8;
const MAX_V_ACCELERATION: f32 = 0.5 * G_ACCELERATION;
const MAX_ANGULAR_SPEED: f32 = PI;
const MAX_ALTITUDE: f32 = 100.;
pub struct MovementPluginGroup;
impl PluginGroup for MovementPluginGroup {
fn build(self) -> PluginGroupBuilder {
PluginGroupBuilder::start::<Self>()
.add(MovementPlugin)
.add(PathingPlugin)
.add(ObstaclesPlugin)
.add(RepulsionPlugin)
.add(KinematicsPlugin)
.add(AltitudePlugin)
.add(SyncingPlugin)
}
}