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: f64,
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: f64,
pub default_height: f64,
pub default_mass: f64,
pub joint_point_compliance: f64,
pub joint_angle_compliance: f64,
pub joint_distance_damping: f64,
pub joint_angular_damping: f64,
}
#[derive(Deserialize, Asset, TypePath, Clone)]
pub struct HeartyConfig {
pub thrust: f32,
pub spawn_at: String,
}