use bevy::asset::Asset;
use crate::prelude::*;
use serde::Deserialize;
#[derive(Deserialize, Asset, TypePath, Clone)]
pub struct GlobalWorldConfig {
pub world: WorldConfig,
pub part: WPartConfig,
pub hearty: HeartyConfig,
}
#[derive(Deserialize, Asset, TypePath, Clone)]
pub struct WorldConfig {
pub gravity: f32,
pub gravity_iterations: usize,
pub spawn_parts_at: String,
pub spawn_parts_interval_secs: f32,
}
#[derive(Deserialize, Asset, TypePath, Clone, Debug)]
pub struct WPartConfig {
pub default_width: f32,
pub default_height: f32,
pub default_mass: f32,
pub joint_align_compliance: f32,
pub joint_angle_compliance: f32,
pub joint_limit_compliance: f32,
pub joint_linear_damping: f32,
pub joint_angular_damping: f32,
}
#[derive(Deserialize, Asset, TypePath, Clone)]
pub struct HeartyConfig {
pub thrust: f32,
pub spawn_at: String,
}